在Symfony2中包含用户自定义函数最佳实践

Min*_*vME 6 php symfony

我在Symfony2中一个新手,我不明白,我应该让我的定制跨项目功能(例如包括array_merge_overwrite,array_last等等)?我使用两种类型的应用程序:web(MVC)和控制台(扩展ContainerAwareCommand).

或者还有另一种"正确的方法"吗?

Eln*_*mov 7

创建服务并将您的常用功能放入其中.例如,您可以将其命名ArrayService并在容器中注册为array.service.然后,您可以通过控制器访问此服务

$this->get('array.service');
Run Code Online (Sandbox Code Playgroud)

并从命令通过

$this->getContainer()->get('array.service');
Run Code Online (Sandbox Code Playgroud)

所以,你的代码看起来像这样:

$element = $this->get('array.service')->last($array); // or ->arrayLast($array)
Run Code Online (Sandbox Code Playgroud)

如果您需要跨多个项目使用相同的功能,请使用该服务创建一个包并将其添加到deps每个项目的文件中.然后在运行bin/vendors install脚本时安装它.