Я пытаюсь понять, как работает Front Controller должен выглядит как. Из Википедии,
Шаблон Front Controller — это шаблон проектирования программного обеспечения, указанный в
несколько каталогов образцов. Шаблон относится к дизайну веб
Приложения. Это «обеспечивает централизованную точку входа для обработки
Запросы.»
Итак, код ниже, который обрабатывает маршруты в Slim фронт-контроллера?
$app = new \Slim\Slim();
$app->get('/books/:id', function ($id) use ($app) {
// Get all books or one book.
$bookModel = new ...
$bookController = new ...
$app->render('myTemplate.php', array('id' => $id, ...));
});
$app->run();
обеспечивает централизованную точку входа для обработки запросов.
Да, Slim может быть своего рода фронт-контроллером. Он обрабатывает все входящие запросы и доставляет их в нужное место / контроллер.
Не путайте фронт-контроллер с контроллером шаблона MVC.
В вашем примере маршрут является частью фронт-контроллера и должен вызывать контроллер вашего шаблона MVC. Этот MVC-контроллер (в вашем примере $ bookController) отвечает за оценку информации, передачу информации в представление и отображение представления. Итак, ваш пример должен выглядеть следующим образом:
//Inside of your frontcontroller, defining the route:
$app->get("/books/:id", "bookController:displayBook");
//Inside of your MVC bookController class:
public function displayBook($id)
{
$book = Book::find($id);
$app->view->set("book", $book);
$app->view->render("form_book.php");
}
Других решений пока нет …