我只是想知道这样做的最佳做法/方法是什么。我将用一个例子来解释,以便更容易理解。
注意:到目前为止,如果我的应用程序中只有一个捆绑包,下面的示例工作正常。问题在帖子的底部。
提前致谢
SingleBundle /资源/配置/ services.yml
services:
form_errors:
class: Hello\SingleBundle\Services\FormErrors
FormErrors.php
namespace Hello\SingleBundle\Services;
use Symfony\Component\Form\FormInterface;
class FormErrors
{
public function getErrors(FormInterface $form)
{
.......
.......
return $errors;
}
}
问题: 如果我的应用程序中有多个捆绑包,如何避免重复这两个文件?我在哪里定义服务以及可以从所有捆绑包中访问的服务类?
答案 0 :(得分:1)
您必须在捆绑中定义服务,以实现此服务的逻辑。如果您有捆绑SingleBundle,则调用该服务的最佳方法是使用特殊前缀(在您的情况下为single_bundle.form_errors)。 如果你有两个或更多的bundle,就没有必要复制服务定义和服务类声明,因为在一个bundle的命名空间中定义的所有服务(正确加载到项目中)都可以在另一个bundle的命名空间中访问(这是正确的也加载到项目中。)
所以,我认为在创建服务之前,您只需要考虑应该在哪里定义。如果您对可能的重复有任何疑问,请注意服务名称。