-
-
Notifications
You must be signed in to change notification settings - Fork 212
Description
Hi !
I'd like to use a custom ReferenceRepository (https://github.com/doctrine/data-fixtures/blob/1.6.x/src/ReferenceRepository.php),
Currently:
-
The ReferenceRepository is always set inside the AbstractExecutor, even if the fixture already has a referenceRepository
https://github.com/doctrine/data-fixtures/blob/1.6.x/src/Executor/AbstractExecutor.php#L119-L121
it could be nice to only set the referenceRepository if some methodhasReferenceRepository()returnfalse. -
The ReferenceRepository of the AbstractExecutor is hardcoded
https://github.com/doctrine/data-fixtures/blob/1.6.x/src/Executor/AbstractExecutor.php#L47
It could be useful to have the referenceRepository as optional argument... -
The Executor is hardcoded in the command https://github.com/doctrine/DoctrineFixturesBundle/blob/3.5.x/Command/LoadDataFixturesDoctrineCommand.php#L154
I see two way/improvements to solve my issue:
- Solving Allow to inject any loader into LoadDataFixturesDoctrineCommand #380 to allow using custom fixtures loaders, then my FixtureLoader will do
$fixture = new class();
$fixture->setReferenceRepository($myCustomRepository);
AND I'll need to add a check in the AbstractExecutor (https://github.com/doctrine/data-fixtures/blob/1.6.x/src/Executor/AbstractExecutor.php#L119) to not set the ReferenceRepository if one is already set (But how do I know this since currently no method is exposed ?)
- Solving Have the ability to chose any executor in LoadDataFixturesDoctrineCommand #364 by allowing to use ExecutorFactories in order to use a custom executor. My factory will just do:
$executor = new ORMExecutor($em, $purger);
$executor->setReferenceRepository($myCustomRepository);
What do you think of this problem ? Any suggestion/preferred solution @greg0ire @derrabus ?
Thanks