Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Symfony2中包含用户自定义函数最佳实践_Php_Symfony - Fatal编程技术网

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

Php 在Symfony2中包含用户自定义函数最佳实践,php,symfony,Php,Symfony,我是Symfony2的新手,我不知道我应该在哪里使用自定义的跨项目功能(例如,array\u merge\u overwrite,array\u last等)?我使用两种类型的应用程序:web(MVC)和console(extendsContainerWareCommand) 或者有另一种“正确的方法”可以做到这一点?您可以将函数转换为某个类的静态方法,使其可自动加载。或好。。。将它们放在您想要和需要的地方()每次都从您需要的地方开始。创建一个应用程序,并将您的常用功能放在其中。例如,您可以将其

我是Symfony2的新手,我不知道我应该在哪里使用自定义的跨项目功能(例如,
array\u merge\u overwrite
array\u last
等)?我使用两种类型的应用程序:web(MVC)和console(extends
ContainerWareCommand


或者有另一种“正确的方法”可以做到这一点?

您可以将函数转换为某个类的静态方法,使其可自动加载。或好。。。将它们放在您想要和需要的地方()每次都从您需要的地方开始。

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

$this->get('array.service');
以及通过

$this->getContainer()->get('array.service');
因此,您的代码将如下所示:

$element = $this->get('array.service')->last($array); // or ->arrayLast($array)

如果您在多个项目中需要相同的功能,请与该服务捆绑,并将其添加到每个项目的
deps
文件中。然后,它将在您运行
bin/vendors install
脚本时安装。

如果我理解正确,Symfony并没有为问题提供解决方案,我应该使用require everyway/script我使用Symfony,是吗?@MingalevME是的,如果您在2011年仍在进行过程编程。尝试切换到OOP。类似的问题回答得很好。