【发布时间】:2013-07-25 08:56:22
【问题描述】:
我正在尝试检查每个路由的用户登录,如此 ZfcUser 问题中所述:https://github.com/ZF-Commons/ZfcUser/issues/187
将事件附加到 MvcEvent::EVENT_ROUTE 事件 - 很简单。
但是,我只想保护我的管理模块而不是应用程序模块。我确定我曾经能够使用 SharedEventManger 将事件附加到特定的命名空间,但这似乎不再起作用 - SharedEventManger 在最近的 ZF2 版本中是否发生了变化?
我的代码:
namespace Admin;
use Zend\ModuleManager\ModuleManager;
use Zend\Mvc\MvcEvent;
class Module
{
public function init(ModuleManager $moduleManager) {
$sharedEventManager = $moduleManager->getEventManager()->getSharedManager();
$sharedEventManager->attach(
__NAMESPACE__,
MvcEvent::EVENT_ROUTE,
array('Admin\Authentication\Enforcer', 'enforceApplication'),
-100
);
}
...
如果我将第一个属性从 _ _ NAMESPACE _ _ 更改为 '*',则触发事件!
如何附加一个“路由”事件,使其仅在特定命名空间内触发? 或者一旦事件被触发,我如何获取触发器的命名空间,这样我就可以添加一个“if Admin”子句。
非常感谢。
皮特
【问题讨论】: