【发布时间】:2014-06-26 10:20:42
【问题描述】:
我正在通过 ZendFramework 2 开发一个网站。我有 2 个模块:管理模块,称为管理(路由定义为 www.mysite.com/admin/...)和模块公共站点,称为应用程序(路由定义为 www .mysite.com/...) 我通过路由区分这 2 个模块。
我不知道如何根据路由区分这两个模块。
为了清楚起见,我有两个问题,例如:
-
我将 Zfcuser 用于
Administration/Module.php中的 Administration et 模块的登录系统我添加了以下代码,目的是如果一个用户没有身份,则布局将更改为登录表单。namespace Administration; use Zend\Mvc\ModuleRouteListener; use Zend\Mvc\MvcEvent; class Module { public function onBootstrap(MvcEvent $e) { $eventManager = $e->getApplication ()->getEventManager (); $moduleRouteListener = new ModuleRouteListener (); $moduleRouteListener->attach ( $eventManager ); $eventManager->attach('dispatch', array($this, 'checkLoginChangeLayout')); } public function checkLoginChangeLayout(MvcEvent $e) { if (! $e->getApplication ()->getServiceManager ()->get ( 'zfcuser_auth_service' )->hasIdentity ()) { $controller = $e->getTarget (); $controller->layout ( 'layout/authentication.phtml' ); } } public function getConfig() { return include __DIR__ . '/config/module.config.php'; } public function getAutoloaderConfig() { return array ( 'Zend\Loader\StandardAutoloader' => array ( 'namespaces' => array ( __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__ ) ) ); } }
但是所有 2 个模块都受到 function checkLoginChangeLayout() 的影响。我想只在模块管理中使用模块 ZfcUser,而不是模块应用程序。
我可以通过模块管理器或事件管理器来解决问题吗?
- 我发现了一个名为 BjyAuthorize 的第 3 方模块,它被“守卫”用于 ACL。当我在
application.config.php中激活模块时,我所有的 2 个模块都由它控制。但我只想在管理模块中使用第 3 方模块,而不是其他模块。
【问题讨论】:
标签: zend-framework2 zfcuser bjyauthorize