Symfony2 - 从呼叫服务选项获取返回结果

时间:2015-05-28 09:34:09

标签: php symfony

我正在尝试通过service的call选项执行的方法返回结果。所以 我的service.xml:

<service id="myService" class="serviceClass">
    <argument type="service" id="..."/>
    <argument type="service" id="..."/>        
    <call method="myReturnProblem"/>
</service>

我的服务方式:

function serviceMethod(){
    ...
    $foo = "bar"
    var_dump($foo);
    return true;
}

我的控制器:

function sampleAction(){
    ...
    $this->get('my_Service');
    return Response...
}

所以,我可以看到var_dump该方法正在运行,我希望但我不知道如何才能获得返回true(如果我尝试获取$ foo或其他什么,同样的问题)。

现在,如果我做:

if($this->('my_Service))

它不起作用,因为它不包含结果。要得到它,我必须做类似

的事情
if($this->('my_Service')->serviceMethod())

但它运行serviceMethod两次。

我想要做类似的事情:

if($this->get('my_Service')){}

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

您所做的是 Setter Injection ,可用参考herehere

顾名思义,它是用于将服务注入到另一个服务中,而不是用于返回值。

为了达到结果的目的,您应该在服务中创建一个常规方法来处理值,然后返回结果。

ScrollViewer