2013-07-01 79 views
0

如何到目前爲止,我需要把它添加到每個模塊加載的命名空間,所有模塊(用於整個應用程序的全球自動加載)ZF2 - 包括(自動加載)類/命名空間,所有模塊

public function getAutoloaderConfig() 
    { 
     return array(
      /* ... */ 
      'Zend\Loader\StandardAutoloader' => array(
       'namespaces' => array(
        /* ... */ 
        'MyNameSpace'  => __DIR__ . '/../../library/MyNameSpace',    
       ), 

      ), 
     ); 
    } 

如何在application.config.php中實現此功能? (我只想爲整個應用程序加載一些基類)

回答

0

加載模塊需要使用文件/config/application.config.php 將模塊列表添加到模塊密鑰下的數組中。

return array(
    // This should be an array of module namespaces used in the application. 
    'modules' => array(
     'Application', 
     'Pages', 
     'ModuleName', 
    ), 
    // ..... rest of array 
) 

函數getAutoloaderConfig()和getConfig()用於加載模塊的配置(模塊內部結構)。

http://framework.zend.com/manual/2.0/en/user-guide/modules.html

0

自動加載在你的index.php的路徑,即

set_include_path(get_include_path() . PATH_SEPARATOR . __DIR__ . '/../../library/MyNameSpace'); 
spl_autoload_register(function ($class) { 
if(!class_exists($class)) { 
    $class = str_replace('\\', '/', $class) . '.php'; 
    require_once($class); 
} 
}); 
+1

謝謝,但IMO這是可怕的解決方案 – wahoo

0

我不認爲你可以(或應該)做這在application.config.php文件。 ZF2框架中模塊背後的重點是將邏輯分成可重複使用的獨立代碼位。因此,每個模塊都維護和管理自己的配置,包括獨立於主應用程序或其他模塊的自動加載。主目錄autoload/.global.php.local.php文件通常可以覆蓋這些設置,但自動加載應留給每個單獨的模塊。

如果您試圖包含的模塊是您開發的自定義代碼段,那麼您可能需要查看它們是否實際上是模塊,或者只是查看屬於應用程序模塊的代碼。

+0

在zf2中,您需要通知應用程序您正在使用哪個模塊。請檢查http://framework.zend.com/manual/2.0/en/user-guide/modules.html#informing-the-application-about-our-new-module – Haver