2014-08-27 66 views
0

我有一個認證模塊。現在,我想確保每個模塊都與該認證模塊通信(通信)。我想你可以說它的驗證整個應用程序。我該如何做到這一點?zend框架中模塊之間的通信2

回答

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做的事情,你可以通過服務管理訪問身份驗證類和寫入的配置爲它在服務配置您的模塊中.php文件。要做到這一點真的有很多種方法,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 
      }, 
     ) 
    ); 
} 
+0

所以我現在需要的每一個模塊和控制器做到這一點?這似乎是荒謬的。應該有一個更簡單的方法來處理這個問題。 – jkushner 2014-08-28 00:01:32

+0

如果每個類都擴展了一些基類,並且基類中的方法已經在初始化時被調用,那麼它不是那麼荒謬,你所做的只是子類化。你是否也研究過依賴注入? – alex 2014-08-28 00:13:48

+0

哦,我明白了。我沒有正確閱讀。我會嘗試子類。什麼是依賴注入? – jkushner 2014-08-28 00:29:48