使用Symfony2创建服务

时间:2012-10-27 10:49:23

标签: php service symfony

使用symfony2我正在关注this documentation来创建和使用服务来执行一般任务。

我几乎已经完成了,但我还有一个问题(当然是由于对Symfony2中服务容器的一些误解。

课程是这样的:

class MyClass{
    private $myProperty;

    public funciton performSomethingGeneral{
        return $theResult;
    }
}

现在,在我的config.yml:

services:
    myService:
        class: Acme\MyBundle\Service\MyClass
        arguments: [valueForMyProperty]

最后,在我的控制器中:

$myService = $this -> container -> get('myService');

在该行之后,当我检查$myService时,我仍然看到$ myService - > $ myProperty as uninitialized。

有些事我没有得到妥善处理。我还需要做些什么来初始化属性并准备好使用config.yml中之前配置的值?我如何设置多个属性?

1 个答案:

答案 0 :(得分:6)

您的yml文件中的

arguments将传递给您服务的构造函数,因此您应该在那里处理它。

services:
    myService:
        class: Acme\MyBundle\Service\MyClass
        arguments: [valueForMyProperty, otherValue]

和php:

class MyClass{
    private $myProperty;
    private $otherProperty;

    public funciton __construct($property1, $property2){
         $this->myProperty = $property1;   
         $this->otherProperty = $property2;   
    }
}