在zend框架2中的模块之间进行通信

时间:2014-08-27 21:32:44

标签: module zend-framework2

我有一个验证模块。现在,我想确保每个模块都与该认证模块通过(通信)。我想你可以说它对整个应用程序的身份验证。我该如何做到这一点?

1 个答案:

答案 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
            },
        )
    );
}