При использовании типа Literal маршрут сопоставляется только тогда, когда строка маршрута полностью совпадает с путем URL. Тип Literal обычно используется для URL, которые должны быть короткими и запоминающимися, вроде '/about' или '/news'.
Ниже представлено определение маршрута home. Этот маршрут обычно сопоставляется
действию IndexController
"index" и ведет на домашнюю страницу сайта:
'home' => [
'type' => Literal::class,
'options' => [
'route' => '/',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
],
],
],
В этом примере строка 2 указывает тип маршрута - Literal. Алгоритм
сопоставления маршрута реализован в классе Zend\Router\Http\Literal
.
Строка 4 определяет строку маршрута, которую надо сопоставить с путем URL (слеш означает пустую часть URL). Так как тип маршрута - Literal, маршрут будет соответствовать только при полном совпадении пути. Например, URL "http://localhost/" или "http://localhost" будет соответствовать строке '/'.
Строки 5-8 определяют умолчания, которые возвращаются маршрутизатором, если маршрут
удалось сопоставить. Параметры controller
и action
определяют контроллер
и метод действия контроллера, который надо выполнить. При необходимости вы также можете
определить здесь и другие параметры.
В качестве другого примера типа маршрута Literal, добавим маршрут '/about' для страницы About, которую мы создали ранее в разделе Представления главы Модель-Представление-Контроллер. Чтобы создать маршрут, добавьте следующий код сразу после определения маршрута "home" в файл module.config.php:
'about' => [
'type' => Literal::class,
'options' => [
'route' => '/about',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'about',
],
],
],
Если вы теперь откроете URL "http://localhost/about" в вашем браузере, вы должны увидеть страницу About.