Zend Framework 2 – Несколько модулей по URL-адресу

В настоящее время я использую приложение ZendFrameworkSkeleton от Git и пытаюсь использовать его часть модуля, чтобы иметь множество модулей, изменяемых по URL-адресу:

http://localhost/application/index/index/ http://localhost/guestbook/index/index/ http://localhost/forum/index/index/ 

Кроме того, как бы вы использовали язык для дальнейшего расширения:

 http://localhost/en/application/index/index/ http://localhost/de/application/index/index/ http://localhost/en/forum/index/index/ 

Я бы подумал, что это в значительной степени касается модулей ZF2, и я удивлен, что он, похоже, не работает из коробки. Кто-нибудь понял, как это должно быть сделано или, возможно, ссылка на пример / учебник?

В настоящий момент кажется, что маршрутизатор находится внутри каждого модуля, а не всего всего приложения, которое я бы подумал, как это должно быть сделано … Я вроде догадываюсь, что у вас есть один модуль приложения, который выполняет маршрутизацию и глобальный материал, инъекционные зависимости и то, что нет, а затем другие модули для разных вещей, таких как игра, учетная запись, гостевая книга, форум и т. д.

Как только я это понял, я могу сделать пример приложения Github, поскольку я знаю, что другим людям это интересно.

Редактировать @ 24/11/2011: с тех пор я столкнулся с сообщением EvanDotPro о том, что они рассказывают о них, не желая делать модуль ZF1 / контроллер / действие, делая что-то, и что не так много спрос на него. Он на самом деле написал пример, в котором он запускал что-то вроде этого, но сказал, что он не работает на 100%. Таким образом, любой, кто сталкивается с этим сообщением, ищет дополнительную информацию и немного более сообразителен, то это он: https://github.com/EvanDotPro/EdpMagicRoute (если он все еще существует в точке чтения этого!)

Я нашел хороший пример на github https://github.com/akrabat/zf2-tutorial + pdf с объяснением http://akrabat.com/wp-content/uploads/Getting-Started-with-Zend-Framework-2.pdf

Чтобы изменить маршрутизацию, вам необходимо отредактировать приложение / confid / module.config.php. Найдите там и измените

 'options' => array( 'route' => '/[:module/[:controller[/:action]]]', 'constraints' => array( 'module' => '[a-zA-Z][a-zA-Z0-9_-]*', 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 'action' => '[a-zA-Z][a-zA-Z0-9_-]*' ), 'defaults' => array( 'module' => 'Application', 'controller' => 'index', 'action' => 'index' ) ) 

Вы можете видеть, что я добавил / [: модуль и глухоты и ограничения

Вы можете использовать атрибут ' child_routes ' в файле module.config.php, который находится в модуле \ Application \ config

 'routes' => array( 'application' => array( 'type' => 'Literal', 'options' => array( 'route' => '/application', 'defaults' => array( '__NAMESPACE__' => 'Application\Controller', 'controller' => 'Index', 'action' => 'index', ), ), 'may_terminate' => true, 'child_routes' => array( 'default' => array( 'type' => 'Segment', 'options' => array( 'route' => '/[:controller[/:action]]', 'constraints' => array( 'controller' => '[a-zA-Z][a-zA-Z0-9_-]*', 'action' => '[a-zA-Z][a-zA-Z0-9_-]*', ), 'defaults' => array( ), ), ), ), ), ), 

то вы можете запустить localhost / application / index / index