Symfony注入不能注入主义对象

时间:2013-04-28 14:14:38

标签: php symfony doctrine-orm

我正在使用symphony 2,我正在尝试创建一个处理某些计算的自定义服务容器

我的services.yml

services:
    my_calculator:
        class:        my_app\HomeBundle\Services\CalculatorService
        arguments:    [doctrine]

CalculatorService如下

<?php 
namespace my_app\HomeBundle\Services;

use my_app\CategoryBundle\Entity;

class CalculatorService
{
    protected $doctrine;

    public function __construct($doctrine)
    {
        $this->doctrine = $doctrine;
    }

    public function calculate($data=array())
    {
        if(!empty($data))
        {
        }
    }
}

我的控制器功能

public function calculateAction()
{
    $request = $this->get('request');

    $calculator=$this->get('my_calculator');
 }

我的问题是,学说对象不能得到构造函数

我试过arguments: [@doctrine]arguments: [@doctrine.orm.entity_manager]

但是一旦我在yml文件中写@

,我就会出现解析错误

请帮助

1 个答案:

答案 0 :(得分:3)

这是实体管理器注入的工作代码示例。

services.yml

my_service:
    class: GLS\DemoBundle\MyService
    arguments: ["@doctrine.orm.entity_manager"]

服务类:

class MyService
{
    protected $em;

    public function __construct(\Doctrine\ORM\EntityManager $em)
    {
        $this->em = $em;
    }

}