namespace Auth;
use Zend\ModuleManager\ModuleManager;
class Module
{
public function init(ModuleManager $moduleManager)
{
$sharedEvents = $moduleManager->getEventManager()->getSharedManager();
$sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) {
echo "I am init module dispatch";
exit();
}, 100);
}
}
$moduleManager->getEventManager()->getSharedManager()->attach()
在ZF2 beta5的工作正常,但它不是在稳定的最终发布工作。
已经起飞在最终版本中此功能?
我怎样才能使ZF2最终版本这项工作?
public function onBootstrap(MvcEvent $e)
{
$application = $e->getApplication();
$sharedManager = $application->getEventManager()->getSharedManager();
$sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) {
echo "I am init module dispatch";
exit();
}, 100);
}
在Zend的framework2的Beta版系列
Auth\src\User\Controller\UserController.php
但在ZF2的最终版本,这并不工作。 主命名空间的文件夹应该匹配的src目录下的完全相同。 所以上面只有这样工作
Auth\src\Auth\Controller\UserController.php
or
User\src\User\Controller\UserController.php
不要忘记改变你的命名空间和路径在module.php和module.config.php和控制文件。
有两种方法,
您可以从Module.php init方法得到它,通过传递ModuleManger对象到它,然后modulemanager-> getEventManager。
或者从onBootstrap方法再次Module.php而不是从ModuleManager会,而是由申请对象阿卜杜勒一样。
请记住,init和onBoostrap方法运行的每个页面请求。 注册事件有没关系,但不要把沉重的东西在那里。 我喜欢sharedEventManager,因为它是可用即使服务是未来的初始化。
干杯!
文章来源: $moduleManager->getEventManager()->getSharedManager()->attach is not working in stable zf2