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


Symfony2 - Get return result from call service option

我试图从服务的调用选项执行的方法中获得返回结果。所以My 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;
}

My Controller:

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

所以,我可以看到与var_dump的方法像我希望的那样运行,但我不知道我怎么能得到返回真(同样的问题,如果我试图得到$foo或其他什么)。

现在如果我输入:

if($this->('my_Service))

不起作用,因为它不包含结果。为了得到它,我必须输入

if($this->('my_Service')->serviceMethod())

但是它运行了两次serviceMethod。

我想做这样的东西:

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

你知道吗?谢谢。

你所做的叫做Setter注入,参考资料在这里和这里

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

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

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