Я столкнулся с двумя способами, чтобы вводить зависимости в пользовательские репозитории Doctrine.Инъекция зависимостей в пользовательском репозитории Doctrine
- https://juriansluiman.nl/article/142/dependency-injection-in-a-doctrine-repository
- http://blog.tomhanderson.com/2016/01/dependency-injection-in-doctrine.html
Я понимаю, метод один в том, что он больше не использует диспетчер объектов для извлечения хранилища и вместо этого использует менеджер службы.
Однако, я не понимаю метод два. Есть две части, которые я не понимаю. Первый - это раздел «Конфигурация». Что делает ключ конфигурации «Doposrine» «repository_factory»?
return array(
'doctrine' => array(
'configuration' => array(
'orm_default' => array(
'repository_factory' => 'Db\Repository\RepositoryFactory',
),
),
),
'service_manager' => array(
'invokables' => array(
'Db\Repository\RepositoryFactory' => 'Db\Repository\RepositoryFactory',
),
),
);
Затем, во-вторых, я не уверен, как получить репозиторий. Должен ли я использовать диспетчер объектов? Или я должен использовать диспетчер служб, как и в первом методе?
Таким образом, я предполагаю, что для каждого возможного репозитория я хотел бы добавить зависимости в я бы нуждался в аналогичном условии 'if (is_subclass_of ($ entityNamespace, '\ App \ Util \ Doctrine \ Entity \ EntityInterface', true)) {'в этом единственном файле. Я также должен был бы иметь все мои операторы 'use' в одном файле для каждого репозитория, в который я хочу вложить зависимости. Я считаю, что было бы более модульным использовать первый метод. Есть ли причина использовать один метод над другим? Или это просто предпочтение? –