我想在Symfony 2应用程序中使用ResultFactory类作为服务:
我的Result工厂类将负责创建BaseResult实例。根据传递给get工厂方法的类型,ResultFactory将创建正确的ResultObject。
代码如下:
class ResultFactory
{
protected $translator;
public function __construct(Translator $translator)
{
$this->translator = $translator;
}
public function get($type, $param)
{
$instance = null;
switch ($type) {
case 'Type1':
$instance = new Type1Result($param);
break;
case 'Type2':
$instance = new Type2Result($param);
break;
}
return $instance;
}
}
我的问题是:
我想在ResultObject中使用一个服务。我如何注入这个服务到我的ResultObject?
谢谢!
您没有在结果对象中使用服务。您的工厂正在生成结果对象。您可以在services中定义工厂服务。
result.factory:
class: ResultFactory
arguments: ["@translator"]
在控制器中你可以调用服务:
$resultObject = $this->get('result_factory')->get($type, $param);
你也有核心的例子如何创建工厂服务使用symfony2在[文档](http://symfony.com/doc/current/components/dependency_injection/factories.html)