在symfony中放置自定義庫或幫助器方法的最佳方法是什麼? 我正在使用學說與我的項目。我認爲放在一個地方是如何在symfony 1.4中創建/使用自定義類和幫助器?
project_root/lib/vendor/MyClasses/但是,如果我想創建一個類或輔助函數,它會使用一些核心symfony/doctrine方法並返回結果,那麼如何做到這一點,我應該把它放在哪裏? 我希望它從不同的模塊調用,以避免代碼重複。
在symfony中放置自定義庫或幫助器方法的最佳方法是什麼? 我正在使用學說與我的項目。我認爲放在一個地方是如何在symfony 1.4中創建/使用自定義類和幫助器?
project_root/lib/vendor/MyClasses/但是,如果我想創建一個類或輔助函數,它會使用一些核心symfony/doctrine方法並返回結果,那麼如何做到這一點,我應該把它放在哪裏? 我希望它從不同的模塊調用,以避免代碼重複。
它似乎是一個duplicate question。
至於問symfony's 1.2「權威指南」文檔:
輔助函數(返回HTML代碼的常規PHP函數)應該被保存在一個名爲FooBarHelper.php,文件,其中FooBar的是助手組的名稱。將文件存儲在apps/myapp/lib/helper /目錄中(或者在項目的lib /文件夾下創建的任何助手/目錄中),以便它可以由use_helper('FooBar')助手自動找到以包含。
所以,如果你想創建自定義的助手FooBar的 foo的()函數,創建文件的lib /幫手/ FooBarHelper.php:
function foo() {echo "foo!"; }
使用它在你的模板:
use_helper('FooBar')
....
foo(); //outs "foo!"
但是我怎樣才能使用它從模塊操作而不是從視圖。假設我想獲得一個由包含結果集的Class/Helper方法返回的變量。看起來helper只能從模板中調用,它必須生成一些html輸出。我想用某種方法創建一個類,我可以從不同的模塊操作中調用該方法。哪個類可以擴展並放在哪裏? – med 2011-03-07 06:52:05
謝謝你的回答。您的兩個鏈接都指向相同的網址。你能檢查一下嗎? 因此,把它放在任何lib /目錄中會自動加載類?但是,我是否需要從任何symfony/doctrine類擴展自定義類,讓它們能夠訪問doctrine/symfony核心功能? – med 2011-03-07 09:03:04
@medhad鏈接1固定。不,正如我所說,_/lib中/供應商/ _是把你的外部庫的最佳場所,但與標準配置,只有_lib /供應商/ symfony_文件夾被自動加載(見上文)。如果你想使用symfony的功能,你可能要考慮兩種包裝成一個插件。一些googleing肯定會帶你進一步。 – Burgi 2011-03-07 14:01:44
只需添加我的發現,以便可以幫助正在閱讀本文的其他人! 想什麼,我發現,它也可以通過創建或把它的**應用程序/ lib中/ **目錄(特定應用程式)或**應用程序/模塊/ lib目錄**目錄中(使用一類不同的方法後,針對模塊)Symfony項目。Symfony會自動加載類,你可以調用你的動作。您可以將它從sFActions擴展或不擴展;但是這樣做,您將能夠訪問某些核心功能,如'sfContext :: getInstance()'和類似的其他類方法和屬性。 – med 2011-03-20 11:46:38