В Zend Framework 2 я попытался использовать следующий маршрут:
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:username[/:action]',
'defaults' => array(
'__NAMESPACE__' => 'Website\Controller',
'controller' => 'User',
'action' => 'index',
),
),
'may_terminate' => true,
),
Однако при переходе к http://www.example.com/MyUsernameHere
я получаю сообщение об ошибке 404
not found:
Запрошенный контроллер не может быть сопоставлен с существующим классом контроллера.
Контроллер: Пользователь (разрешает недопустимый класс контроллера или псевдоним: Пользователь)
Это похоже на то, что маршрутизатор полностью игнорирует пространство имен 'Website\Controller'
и ищет User
без пространства имен перед ним.
Итак, если я вручную введу пространство имен следующим образом:
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:username[/:action]',
'defaults' => array(
'controller' => 'Website\Controller\User',
'action' => 'index',
),
),
'may_terminate' => true,
),
затем страница загружается, как и ожидалось.
Что дает? Можно ли параметр '__NAMESPACE__'
не использовать для контроллеров? Веб-сайт ZF2 четко дает пример с использованием '__NAMESPACE__'
, но я не могу заставить его работать на практике. Является ли пример неправильным и устаревшим?