service 内のMyEntityRepository
myでいくつかのメソッドを呼び出す必要があります。必要なリポジトリを取得するために注入する例を見てきました。@doctrine.orm.default_entity_manager
namespace Acme\HelloBundle\Service;
use Doctrine\ORM\EntityManager;
Class MyService
{
private $entityManager;
public function __construct(EntityManager $entityManager)
{
$this->entityManager = $entityManager;
}
public function doStuff()
{
$repo = $this->entityManager->getRepository('AcmeHelloBundle:MyEntity');
// Do stuff
}
}
このサービス定義では:
my_service:
class: Acme\HelloBundle\Service\MyService
arguments: ['@doctrine.orm.default_entity_manager']
質問MyEntityRepository
このコードはテスト可能ですか将来のテスト目的で (モック オブジェクトをリポジトリとして使用して)挿入する方がよいでしょうか?
namespace Acme\HelloBundle\Service;
use Acme\HelloBundle\Repository\MyEntityRepository;
Class MyService
{
private $er;
public function __construct(MyEntityRepository $er) { $this->er = $er; }
public function doStuff()
{
$repo = $this->er;
// Do stuff
}
}
使用:
my_entity_repository:
class: Acme\HelloBundle\Repository\MyEntityRepository
factory_service: doctrine.orm.default_entity_manager
factory_method: getRepository
arguments: ['Acme\HelloBundle\Entity\MyEntity']
my_service:
class: Acme\HelloBundle\Service\MyService
arguments: ['@my_entity_repository']