2012-04-26 25 views
1

我想在所有模型類(在項目文件夾和插件文件夾中)使用一個功能。Symfony功能適用於所有型號

我應該在哪裏申報?

+0

可能,你今天已經問過這個問題了嗎? http://symfony.com/doc/current/book/service_container.html – KingCrunch 2012-04-26 20:42:46

+1

輔助函數或實體類的實際行爲? – yitznewton 2012-04-27 12:31:49

回答

3

根據您的功能的不同,您可以在lib文件夾中創建一個文件,然後從應用程序中的每個位置調用該文件。這在Symfony項目中定義常用函數(如工具箱)很有用。

例如,在the Jobeet tutorial,它們在/lib/Jobeet.class.php(一定命名與.class.php文件在結束這樣的Symfony將自動加載它)定義了一個名爲slugify方法。然後,您可以在您的應用/模型/插件/視圖中的每個位置調用Jobeet::slugify()

-4

該解決方案可與Symfony的1.4:

  • 創建中聲明你想成爲隨處可用功能的新文件。
  • 您可以使用php.ini文件中的auto prepend file setting加載該文件。

如果做得正確,那麼該函數在您的所有腳本中都可用,而不管模型,插件或項目中的其他內容。

+3

最好使用每個目錄下的'auto_prepend_file'。否則,它將包含在所有使用'php.ini'的網站中。無論如何,不​​確定是否需要創建這樣的外部依賴關係。 Symfony 1.4有一個'/ lib'目錄。 – webbiedave 2012-04-26 20:55:19

+1

-1是的,我必須同意@ webbiedave在這裏的最後一句話。使用php.ini設置對於任何不熟悉項目的開發人員來說都是非常意外的,特別是當Symfony已經提供了一個完成它的機制時。 – 2012-04-26 22:48:00

+0

@Phoenix:如果它有效,它就會起作用。不是說這是最好的答案,但技術上這是正確的。每個目錄設置可用於每個php.ini - 請參閱用戶ini。 – hakre 2012-04-26 22:49:48

相關問題