我有一个验证模块。现在,我想确保每个模块都与该认证模块通过(通信)。我想你可以说它对整个应用程序的身份验证。我该如何做到这一点?
答案 0 :(得分:0)
一个简单的方法是通过命名空间获取该模块/ module_class,然后你可以扩展该类。具有在父类中自动调用的功能或在子类中调用该方法。这将是一个非常基本的方式:
// Auth class
class SomeAuthClass
{
public function __construct()
{
// go ahead and call doAuthCrap here, or wait
// and let the child class call it manually
}
protected function doAuthCrap()
{
// code
}
}
use Your\AuthModule\SomeAuthClass;
class SomeOtherModuleClass extends SomeAuthClass
{
public function zippy_snipp()
{
// call some method from the parent auth class (doAuthCrap)
}
}
或者要遵循ZF2的一些新方法,您可以通过服务管理器访问auth类,并在module.php文件中的service config中为其编写配置。有很多方法可以做到这一点,ZF2为这样的事情提供了很多选择。
ZF2:
// in controller
$auth = $this->getServiceLocator()->get('someAuth');
// in service config in module.php
public function getServiceConfig()
{
return array(
'factories' => array(
'someAuth' => function ($serviceManager) {
// code here
},
)
);
}