我是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()