У меня есть два модуля в моем приложении ZF2, оба модуля имеют разную конфигурацию для себя, и оба модуля имеют разные Module.php с различными настройками внутри него.предотвращает слияние двух конфигураций модуля в Zend Framework 2
У меня есть процесс входа для администратора, который определен в module.php, как показано ниже: в onBootstrap Funtion:
public function onBootstrap($e) {
$e->getApplication()->getEventManager()->getSharedManager()->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', function($e) {
$controller = $e->getTarget();
$controllerClass = get_class($controller);
$moduleNamespace = substr($controllerClass, 0, strpos($controllerClass, '\\'));
if ('Admin' === $moduleNamespace) {
$controller->layout('layout/admin');
}
}, 100);
$application = $e->getApplication();
$eventManager = $application->getEventManager();
..........
..........
$eventManager->attach(MvcEvent::EVENT_DISPATCH, array($this, 'boforeDispatch'), 100);
}
функцию boforeDispatch, которая называется внутри onBootstrap
для проверки процесса Войти
function boforeDispatch(MvcEvent $event) {
......
//did something
......
}
Всякий раз, когда я собираюсь запустите Front module, функция Admin-модуля beforeDispatch запущена. Я также попытался определить другую функцию внутри модуля Front без содержимого внутри, чтобы он не мог объединить его.
Я написал другую 404 шаблон для обоих модулей, но шаблон фронта работает. Вот код .:
'view_manager' => array(
'display_not_found_reason' => true,
'display_exceptions' => true,
'doctype' => 'HTML5',
'not_found_template' => 'error/404',
'exception_template' => 'error/index',
'template_map' => array(
'layout/front' => __DIR__ . '/../view/layout/layout.phtml',
'front/index/index' => __DIR__ . '/../view/front/index/index.phtml',
'error/404' => __DIR__ . '/../view/error/404.phtml',
'error/index' => __DIR__ . '/../view/error/index.phtml',
),
'template_path_stack' => array(
__DIR__ . '/../view',
),
),
Оба файла находятся внутри его папки модулей с одинаковой структурой. В: Как предотвратить слияние конфигурации одного модуля с другим?
Что о первой задаче? –
Это поведение в порядке, и вы не должны его изменять. Внутри функции beforeDispatch() вы должны обходить логику для модуля Front, например. if ($ module! == 'front') {return true; } в противном случае выполнить код ... – tasmaniski