EntityMangerをSymfony2の小枝拡張に注入するのに問題があります。私は次のことをしました:
新しい小枝拡張を登録し、クラスを作成しました。すべてが機能しています。今、私はデータベースにアクセスしたいと思い、教義のEntityManagerを注入しようとしました。私の最初のステップは、EMをパラメーターとしてコンストラクターに追加することでした。
use XYZ\BlubBundle\Utils\SessionHelper;
class SessionHelperExtension extends \Twig_Extension
{
private $em;
private $conn;
protected $sessionHelper;
public function __construct(\Doctrine\ORM\EntityManager $em, \XYZ\BlubBundle\Utils\SessionHelper $sessionHelper) {
$this->em = $em;
$this->conn = $em->getConnection();
$this->sessionHelper = $sessionHelper;
}
[...]
}
?>
次に、service.yamlに次の行を追加しました。
twig.extension.sessionHelper:
class: XYZ\BlubBundle\Extensions\SessionHelperExtension
arguments: [@session_helper, @doctrine.orm.entity_manager]
tags:
- { name: twig.extension }
私自身のサービス「sessionHelper」は問題なく注入されますが、EntityManagerは常に「null」です。私はここで何が間違っているのですか?
編集:次の例外が発生します:
Catchable Fatal Error: Argument 2 passed to
XYZ\BlubBundle\Extensions\SessionHelperExtension::__construct() must be an instance of
Doctrine\ORM\EntityManager, none given,
called in /.../Symfony/app/cache/dev/appDevDebugProjectContainer.php on line 2918 and
defined in /.../Symfony/src/XYZ/BlubBundle/Extensions/SessionHelperExtension.php line 12