Здравствуйте. Сделала два контроллера, общий и админский, но не нашла ничего умнее как подключать админский через правило в общем контроллере, думаю что я былдокод сварганила, помогите довести до ума.
Вот общий контроллер
require_once __DIR__.'/App/autoload.php';
$parts = explode('/', $_SERVER['REQUEST_URI']);
if (('admin' === $parts[1]) ){
require_once __DIR__.'/indexAdmin.php';
} else {
$ctrl1 = $parts[1] ? ucfirst($parts[1]) : 'Index';
if (isset($parts[2])) {
$ctrl2 = ucfirst($parts[2]);
$class = '\App\Controllers\\' . $ctrl2;
$parts = explode('?', $parts[3]);
$act = $parts[0] ?? 'handle';
} else {
$class = '\App\Controllers\\' . $ctrl1;
$act = 'handle';
}
$ctrl = new $class;
$ctrl->action($act);
}
вот админский контроллер
require_once __DIR__.'/App/autoload.php';
$parts = explode('/', $_SERVER['REQUEST_URI']);
$ctrl1 = $parts[1] ? ucfirst($parts[1]) : 'Admin';
$ctrl2 = $parts[2] ? ucfirst($parts[2]) : 'IndexAdmin';
$class = '\App\Controllers\\' . $ctrl1 .'\\' . $ctrl2;
if(!empty($parts[3])){
$parts1 = explode('?', $parts[3]);
}
$act = $parts1[0] ?? 'handle';
$ctrl = new $class;
$ctrl->action($act);
вот так через ссылку содержание которой разбивается на части и в контроллере собирается в класс обьекта я перехожу из общего контроллера в админский
<a href="/admin/IndexAdmin">ADMIN</a>
<?php foreach ($this->news as $article): ?>
<a href="/index/article/handle?id=<?php echo $article->id; ?>"> <h2> <?php echo $article->title; ?> </h2></a><br>
<article class="">
<?php echo $article->text; ?>
</article>
<?php if (!empty($article->author_id)):?>
<h4> <?php echo $article->author->name; ?> </h4>
<?php endif; ?>
<?php endforeach; ?>
как сделать переключение на админский контроллер не касаясь общего, при этом шагая как раз таки из общего, без авторизации? заранее благодарна.