Установите общий макет для всех модулей в Zend framework 2

Я работаю над проектом ZF2, и у меня есть несколько модулей в моих каталогах:

/module/module1 /module/module2 /module/module3 /module/module4 [...] 

Но в каждом модуле у меня также есть конкретный макет, соответственно:

 /module/module1/view/layout/layout.phtml /module/module2/view/layout/layout.phtml /module/module3/view/layout/layout.phtml /module/module4/view/layout/layout.phtml 

Мой вопрос: как я могу установить общий макет для всех своих модулей без необходимости изменять каждый макет, когда захочу.

спасибо

Вы можете настроить макет как раз то, что вам нужно в каждой конфигурации модулей, просто измените макет так, как вам хочется:

module.config.php или внутри getConfig ()

 'view_manager' => array( // other stuff here.. 'template_map' => array( // use Applications layout instead 'layout/layout' => __DIR__ . '/../Application/view/application/layout/layout.phtml', ), 'template_path_stack' => array( __DIR__ . '/../view', ), ), 

Или вы можете установить каждый модуль, чтобы выборочно установить его макет в Module.php:

module.php

 /** * Initialize */ public function init(ModuleManager $manager) { $events = $manager->getEventManager(); $sharedEvents = $events->getSharedManager(); $sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) { /* @var $e \Zend\Mvc\MvcEvent */ // fired when an ActionController under the namespace is dispatched. $controller = $e->getTarget(); $routeMatch = $e->getRouteMatch(); /* @var $routeMatch \Zend\Mvc\Router\RouteMatch */ $routeName = $routeMatch->getMatchedRouteName(); $controller->layout('application/layout/layout'); }, 100); }