我从一个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