题 Symfony2放置自定义帮助程序类的位置


我从一个Symfony2项目开始。我知道框架基础知识,但我有一个问题: 在我为帮助或业务逻辑创建的辅助类的适当位置在哪里?


25
2018-03-18 14:25


起源


你知道为了完成...如果你真的给下面的一个答案给出了正确的答案,那么对社区的其他人来说会很好,然后说明你是如何实现解决方案的,如果它运行良好的话你到最后。所以关于给予和接受,而不仅仅是服用 - abbood


答案:


马克斯的答案是对的。但是我质疑他为你的代码推荐的路径。

以下类和文件具有特定的位置:

服务容器扩展(属于)DependencyInjection /

http://symfony.com/doc/current/cookbook/bundles/best_practices.html

这表示您的服务应放在名为“DependencyInjection”的文件夹中,而不是“服务”。完整的,它应该是src / Foo / BarBundle / DependencyInjection

我说这是一个有前者的人,刚刚把它们全部移到了后者(!)


14
2018-05-25 17:07



你错了,你必须在DependencyInjection中存储DI Extensions,而不是服务本身。 symfony.com/doc/current/best_practices/business-logic.html - PachinSV
我同意@PachinSV。该页面明确提到: symfony.com/doc/current/cookbook/bundles/extension.html - Egon Olieux


@Adam说错了,你必须存储你的依赖注入 扩展 在DependecyInjection目录中, 不是服务本身。在文档中说,您可以将(自定义)业务逻辑类存储在您喜欢的任何位置。

http://symfony.com/doc/current/best_practices/business-logic.html


6
2018-01-29 22:13





保持业务逻辑的最佳方法是创建服务来处理所有逻辑。所以它会在:

src/Foo/BarBundle/Service

你需要在服务中调用该服务 services.yml


5
2018-03-19 16:05





我最近在现有的Symfony2项目上做了一些小工作。如回答所述 童乐,我创建了我的助手课程 Helper bundle的目录和带Helper后缀的类名,即助手类位于:

src/MyBundle/Helper/MyUtilHelper.php

我可以用 MyUtilHelper 我的包中的类没有调用服务容器,即我不需要调用。

$container->get('my_util');

我真的不知道是否有一些特殊的配置。在我的设置中;有人已经安装了它,我只是添加了新的功能。


3
2017-10-08 04:23





您可以在Bundle下创建自定义类,例如在Helper /文件夹下创建。 但是,要在代码中使用这些帮助程序,您需要在服务描述文件中定义这些帮助程序(例如services.xml)...然后您可以使用$ container-> get('your_helper') - >


2
2018-03-19 00:44





根据官方文件 - 特别是 - Symfony最佳实践  - 你应该存储你的服务 utils的 文件夹下 SRC。我相信,这是正确的方式,无论您是否想要通过服务容器将您的捆绑服务提供的功能提供给应用程序的其他部分。此外,您可以在任何您认为合适的地方存储帮助程序类。关于@Adam Knowles和@PachinSV的答案 - 他们不是很正确,因为他们没有回答你的问题 - “我在哪里提供帮助或业务逻辑创建帮助类的正确位置?”或“在哪里存储我想通过服务容器注册和使用的类” - 但不在哪里放 bundle扩展类 - 主要目的是提供有关配置的信息 自动加载 从您的捆绑到应用程序 服务容器 在过程中 启动内核


0
2017-07-13 05:10