1

使用 symfony2 我正在按照此文档创建和使用服务来执行一般任务。

我已经差不多完成了,但是我还有一个问题(肯定是由于对 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 未初始化。

有些事情我没有得到正确的。我还需要做什么才能使属性初始化并准备好与之前配置的值一起使用config.yml?我将如何设置多个属性?

4

1 回答 1

6

arguments从你的 yml 文件中传递给你的服务的构造函数,所以你应该在那里处理它。

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;   
    }
}
于 2012-10-27T11:48:42.517 回答