这可能是您要投入服务的类型。像这样创建一个类:
class ArrayUtils
{
function array_duplicates($array)
{
...
return $duplicates;
}
}
然后将其定义为服务。如果你使用 YAML,你会在你的 config.yml 文件中加入这样的东西:
services:
arrayUtils:
class: Full\Path\To\ArrayUtils
在这种配置下,Symfony 将创建 ArrayUtils 的单个实例,并授予所有控制器访问它的权限。然后你可以这样称呼它:
class SomeController
{
public function someAction()
{
...
$duplicates = $this->get("arrayUtils")->array_duplicates($array);
...
}
}
这都是 Symfony 依赖注入框架的一部分。这很酷,我建议在这里阅读:http ://symfony.com/doc/2.0/book/service_container.html
替代选项
现在,对于这么一小段代码来说,这可能有点矫枉过正。如果您只打算在单个捆绑包中使用它,那么您可能只想将其放入基本控制器中,并让所有其他控制器扩展该基本控制器。
class BaseController
{
function array_duplicates($array)
{
...
}
}
class SomeController extends BaseController
{
function someAction()
{
$this->array_duplicates($array);
}
}