如何在symfony2中为自定义类创建服务容器

时间:2013-10-19 10:20:33

标签: php symfony

我是symfony2的新手,并且很难将服务注入我的自定义类。以下是场景: 在Bundle中,我创建了一个文件夹和一个类。在该捆绑包中,services.yml具有以下代码

parameters:
    rc2ab_model.class: rc2ab\ShareBundle\Model\Rc2abModel
services:
    rc2ab_model:
        class: "%rc2ab_model.class%"
        arguments: ["@doctrine.orm.entity_manager"]

这是自定义类

的构造函数
public function __construct($em) {

}

之后我在DefaultController中创建了Rc2abModel类的对象

$myObj = new Rc2abModel();

错误来了:

Warning: Missing argument 1 for rc2ab\ShareBundle\Model\Rc2abModel::__construct(), called in Default Controller....

我无法解决这个问题,我已经阅读了他们网站上的文档,所以请不要给我文档链接,我在这里尝试了其他解决方案,但似乎没有什么对我有用。请建议。

1 个答案:

答案 0 :(得分:2)

在控制器中调用服务,您不必自己初始化它:

$myObj = $this->get('rc2ab_model');

它将使用服务注册^^

中的给定参数生成对象

立即尝试:

echo get_class($this->get('rc2ab_model')); exit;

// Display :
rc2ab\ShareBundle\Model\Rc2abModel