A free and open-source book on ZF3 for beginners


5.5. Тип маршрута Literal

При использовании типа 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.


Top