diff --git a/src/Symfony/Bridge/Doctrine/DataFixtures/Loader.php b/src/Symfony/Bridge/Doctrine/DataFixtures/Loader.php new file mode 100644 index 0000000000..07c72222db --- /dev/null +++ b/src/Symfony/Bridge/Doctrine/DataFixtures/Loader.php @@ -0,0 +1,46 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bridge\Doctrine\DataFixtures; + +use Doctrine\Common\DataFixtures\FixtureInterface; +use Doctrine\Common\DataFixtures\Loader as BaseLoader; +use Symfony\Component\DependencyInjection\ContainerAwareInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; + +/** + * Doctrine data fixtures loader that injects the service container for + * fixtures objects that implement ContainerAwareInterface. + * + * Note: This class cannot be used without the Doctrine data fixtures extension, + * which is not listed as a required dependency for Symfony. + */ +class Loader extends BaseLoader +{ + private $container; + + public function __construct(ContainerInterface $container) + { + $this->container = $container; + } + + /** + * {@inheritdoc} + */ + public function addFixture(FixtureInterface $fixture) + { + if ($fixture instanceof ContainerAwareInterface) { + $fixture->setContainer($this->container); + } + + parent::addFixture($fixture); + } +}