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



我是Symfony2的新手,我不明白我应该在哪里制作包含我的自定义跨项目功能(例如array_merge_overwrite, array_last等)?我使用两种类型的应用程序:web (MVC)和控制台(扩展ContainerAwareCommand)。

或者有另一种"正确的方式"?

创建一个服务,并将您的常用功能放在其中。例如,您可以将其命名为ArrayService,并将其注册为array.service。然后,您可以通过

从控制器访问此服务。
$this->get('array.service');

和from命令通过

$this->getContainer()->get('array.service');
所以,你的代码看起来像这样:
$element = $this->get('array.service')->last($array); // or ->arrayLast($array)

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

您可以将函数转换为某些类的静态方法,以使它们可自动加载。还是……嗯…把它们放在你想要的地方,并且每次从你需要它们的地方require()

最新更新