Шаблон фронт-контроллера — является ли маршрутизатор фронт-контроллером?

Я пытаюсь понять, как работает 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();

4

Решение

обеспечивает централизованную точку входа для обработки запросов.

Да, 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");
}
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]