Zend Framework を使用して、アプリケーション/モジュールにイベントをアタッチして、すべてのモジュールに対してすべてのディスパッチ イベントでこの関数が呼び出されるようにします。これは私のコードです:
class Module { public function getConfig() { return include DIR . '/../config/module.config.php'; }
public function onBootstrap(MvcEvent $event)
{
$application = $event->getApplication();
$serviceManager = $application->getServiceManager();
$sessionManager = $serviceManager->get(SessionManager::class);
// Get event manager.
$eventManager = $event->getApplication()->getEventManager();
$sharedEventManager = $eventManager->getSharedManager();
// Register the event listener method onDispatch
$sharedEventManager->attach(AbstractActionController::class,
MvcEvent::EVENT_DISPATCH, [$this, 'onDispatch'], 100);
}
public function onDispatch(MvcEvent $event)
{
// Will perform application wide ACL control based on controller,
// action and user data.
}
}
アプリケーション画面が読み込まれているにもかかわらず、何らかの理由で onDispatch が呼び出されません。
何が欠けているのかわからない。私の知る限り、アプリケーション全体で有効にするには、共有イベント マネージャーを使用する必要があります。
助けていただければ幸いです。