2011-03-31 46 views
2

所以,我在我的apps/myprogram/lib文件夾中有一些php文件。例如apps/myprogram/lib/myLibA.class.php如何在Symfony中包含多個php庫?

當我在我的modules/actions/scripts中運行,並嘗試使用myLibA中的函數時,我不能。因爲symfony抱怨myLibA類沒有定義。

我需要指定symfony框架中myLibA.class.php是必需庫的任何位置嗎?

回答

6

Symfony的自動加載器在默認情況下會在頂級目錄<project>/lib中查找您的類。在該目錄或下面的任何文件(除了「供應商」)將被搜索類。 Symfony用類聲明搜索任何.php文件並將它們添加到自動加載系統。

此外,您可以在應用程序的autoload.yml文件中添加搜索路徑。例如,對於我的應用程序之一,我已經把第三方的Flickr庫<project>/vendor/phpFlickr,我<project>/apps/frontend/config/autoload.yml文件看起來像:

autoload: 
    vendor_php_flickr: 
     path: %SF_LIB_DIR%/vendor/phpFlickr 
     recursive: on 

,允許低於所有類... /供應商/ phpFlickr被自動加載。

0

這是一種替代方法,您可以定義/添加到您的preExecute這樣的:

public function preExecute() 
{ 
    $this->getContext()->getConfiguration()->loadHelpers('Foo', 'Bar'); 
} 

取自(http://oldforum.symfony-project.org/index.php/m/92916/ )