2013-02-06 30 views
0

我有一個由幾個模塊組成的ZF2應用程序,我想創建一個Logger類,應該可以從任何這些模塊訪問。基本上,我希望能夠用簡單的Logger::info("Something")從任何地方登錄。何處放置不是控制器,模塊或視圖的類?

當前的應用程序佈局是這樣的:

root/ 
    module/ 
    module1/ 
     src/ 
     module2/ 
      src/ 
     module3/ 
      src/ 

在哪裏將是把這個新的記錄器類的最佳地點?以及如何確保它可以從任何子模塊訪問?

回答

0

我把普通班,應該是acceible所有在模塊/應用/ src目錄/ WhateverName

例如,我把AUTH類下設:

module/Application/src/Application/Authentication/AuthenticationService.php 

與命名空間:

namespace Application\Authentication; 

然後我在Module.php中定義服務

public function getServiceConfig() 
{ 
    return array(
     'factories' => array(
      'auth_service' => function ($sm) { 
       $zfauthservice = new \Zend\Authentication\AuthenticationService; 
       return new \Application\Authentication\AuthenticationService($zfauthservice, $sm->get('bp_user_mapper_model')); 
      }, 
    ); 
} 
1

我會建議使用ServiceManager而不是調用一個靜態方法,這將允許您更容易地換出日誌類,如果需要前進。

而且ZF2模塊中的代碼可如何構建方面很靈活,所以你可以簡單地使用:

module/Application/src/Application/Logger/LoggerFactory.php 

或者可能創建一個記錄器模塊,如果你看到這個代碼在其他項目中被重用。

昨天我看到Rob Allen博客文章關於模塊的目錄結構 - http://akrabat.com/zend-framework-2/thoughts-on-module-directory-structure/ - 可能值得快速閱讀。

相關問題