Issei.M's Techlog

Web/iOS エンジニアの僕が技術関連のメモ等をつらつらと。主に Symfony について書いています。

[Symfony] Doctrine の Repository をサービスコンテナに登録する

AcmeBlogBundle\Repository\BlogRepositoryをサービスコンテナに追加:

# @AcmeBlogBundle/Resources/config/services.yml
parameters:
    acme_blog.repository.blog.class:  Acme\BlogBundle\Repository\BlogRepository

services:
    acme_blog.repository.blog:
        class:           '%acme_blog.repository.blog.class%'
        factory_service: doctrine.orm.entity_manager
        factory_method:  getRepository
        arguments:       [ 'AcmeBlogBundle:Blog' ]

要するに $doctrine->getRepository('AcmeBlogBundle:Blog'); の処理をサービスとして定義しているだけです。

// returns true
$container->get('acme_blog.repository.blog') === $doctrine->getRepository('AcmeBlogBundle:Blog');