我從一個Symfony2項目開始。我知道框架的基礎知識,但我有一個問題: 在哪裏可以找到幫助我創建的幫助類或業務邏輯的正確位置?Symfony2在哪裏放置自定義幫助類
回答
Max的回答是正確的。然而,我質疑他爲你的代碼建議的路徑。
從 http://symfony.com/doc/current/cookbook/bundles/best_practices.html以下類和文件有具體的炮位:
服務容器擴展DependencyInjection(以屬於)/
,說你的服務應該放在一個文件夾中稱爲「依賴注入」,而不是「服務」。在全面,它應該是SRC /美孚/ BarBundle/DependencyInjection
我這樣說是因爲有人說了前者,並剛剛完成他們全部轉移到後者(!)
你錯了,你必須將DI Extensions存儲在DependencyInjection中,而不是服務本身。 http://symfony.com/doc/current/best_practices/business-logic.html – PachinSV 2015-01-29 22:15:07
我同意@PachinSV。本頁面明確提到:http://symfony.com/doc/current/cookbook/bundles/extension.html – 2016-07-05 03:24:57
您可以在您的Bundle下創建自定義類,例如文件夾Helper/.. 但是,要在代碼中使用這些助手,您需要在服務描述文件中定義這些助手(如services.xml)...然後你可以使用$ container-> get('your_helper') - >
保持業務邏輯的最好方法是創建服務來處理所有的邏輯。因此,這將是:
src/Foo/BarBundle/Service
,你需要調用在services.yml
服務。
我最近做了一些小的工作現有的Symfony2項目。正如答案來自Tuong Le描述,我創建了Helper類的Helper
目錄與助手後綴的包和類名的下即輔助類位於:
src/MyBundle/Helper/MyUtilHelper.php
我可以在我的包使用MyUtilHelper
類不調用服務容器即我不需要打電話。
$container->get('my_util');
我真的不知道是否有一些特殊的配置。在我的設置中;有人已經設置好了,我只是增加了新的功能。
什麼@Adam說的是錯的,你必須存儲你的依賴注入擴展在DependecyInjection目錄,不是服務本身。在文檔中說您可以將您的(自定義)業務邏輯類存儲在任何你喜歡的地方。
http://symfony.com/doc/current/best_practices/business-logic.html
根據官方文檔 - 尤其是 - Symfony的最佳實踐 - 您應將服務文件夾存儲在utils的的SRC下。我相信,無論您希望還是不希望通過服務容器將您的軟件包的服務提供的功能提供給其他應用程序部分,這都是正確的方式。此外,您可以將助手課程存儲在您認爲合適的任何地方。關於@Adam Knowles和@PachinSV的答案 - 他們並不完全正確,因爲他們沒有回答你的問題 - 「爲幫助或業務邏輯創建幫助者類的正確位置在哪裏?」或「在哪裏存儲我想註冊並通過服務容器使用的課程」 - 但不能放在何處軟件包擴展類 - 主要目的是提供有關應該配置的信息自動加載從您的軟件包到應用程序服務容器在的過程中啓動內核。
- 1. MVC3 - 在哪裏放置自定義屬性類
- 2. 你在哪裏放置自定義入口點定義?
- 3. Rails 3:放置自定義驗證器類的最佳位置在哪裏?
- 4. Django:在哪裏放置助手函數?
- 5. Rails - 在哪裏放置路徑助手?
- 6. Gradle android:我應該在哪裏放置自定義任務?
- 7. 我應該在哪裏放置自定義的.d.ts文件?
- 8. ZF:在哪裏放置自定義函數
- 9. CakePHP 3 - 在哪裏放置自定義的SQL代碼
- 10. SugarCRM:添加自定義幫助類
- 11. Laravel 5.4中的自定義幫助類
- 12. 自定義文章類型小幫助?
- 13. WordPress - 我會在哪裏放置自定義類和數據庫調用?
- 14. Backbone.js - 在哪裏定義視圖助手?
- 15. 哪裏可以放置setScrollsToTop自定義單元格
- 16. cakephp SQL幫助!哪裏?
- 17. MVC3自定義Html幫助
- 18. RoR - 在哪裏放置自動過程
- 19. laravel在哪裏放置記錄器類
- 20. 在哪裏放置商業邏輯類
- 21. CodeIgniter - 在哪裏放置函數/類?
- 22. Groovy約定:我在哪裏放置metaClass定義?
- 23. 將CakePHP項目中的自定義類和第三方類放在哪裏?
- 24. 需要幫助瞭解在哪裏放一段代碼,onCreate()/ OnStart
- 25. Symfony2:在哪裏放置代碼運行所有路線?
- 26. xUnit.net幫助文件在哪裏?
- 27. 在哪裏存儲幫助函數?
- 28. OSX Mountain Lion的幫助Indexer.app在哪裏?
- 29. SQL查詢幫助在哪裏條件
- 30. 需要幫助讓自定義幻燈片自動播放
爲了完成起見,你會知道的。如果你實際上給了下面答案中的一個答案的正確答案,然後說明你是如何實現解決方案的最後會爲你排好。 SO是關於給予和服用的,而不僅僅是服用 – abbood 2014-06-11 07:13:19