【问题标题】:How to create service container in symfony2 for a custom class如何在 symfony2 中为自定义类创建服务容器
【发布时间】:2013-10-19 10:20:33
【问题描述】:

我是 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....

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

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    一个服务在控制器中是这样调用的,你不必自己初始化它:

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

    它会产生带有服务注册给定参数的对象^^

    现在试试这个:

    echo get_class($this->get('rc2ab_model')); exit;
    
    // Display :
    rc2ab\ShareBundle\Model\Rc2abModel
    

    【讨论】:

    • 谢谢 :) 上次我最终做了这件事.. 但没有检查我在构造函数中是否有任何 arg。
    猜你喜欢
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多