doctrine / DoctrineFixturesBundle

Symfony integration for the doctrine/data-fixtures library
MIT License
2.45k stars 202 forks source link

Vendor fixtures are loaded before AppFixtures in 3.0 #298

Closed alexander-schranz closed 4 years ago

alexander-schranz commented 4 years ago

When I did uprade from 2.4 to 3.2.2 the Fixtures did not longer work as the vendor fixtures were not longer loaded before the AppFixtures. I could fixed it by using the OrderedFixtureInterface but think this is not documented in the upgrade or is a bug in 3 version.

weaverryan commented 4 years ago

Hmm. That sounds like a behavior change, but I think there’s no contract of what order fixtures will be loaded when it’s not specified. So while we definitely don’t want this to change randomly, I think it’s not a bug.

Are you guys able to add the ordered interface on the vendor fixtures with a high priority to fix for your users?

alcaeus commented 4 years ago

I agree with @weaverryan here: even before, it was coincidence that vendor fixtures were loaded before yours. If you want to have specific fixtures run before yours, use the OrderedFixtureInterface. I don't think this is neither a bug, nor worthy of being mentioned: don't rely on implicit behaviour of libraries, especially if it's not documented. Make your intentions clear, make behaviour explicit: use ordered fixtures if you depend on a certain order.

alexander-schranz commented 4 years ago

Ok I used the OrderedFixtureInterface could not use the DependentFixtureInterface as this seems not work with third party services which does not have a class as its service name?

alcaeus commented 4 years ago

Could you try to reproduce that last issue and file a bug report? Thanks!