Doctrine fixtures not working after updating to Symfony 2.1.8

doctrine-orm, fixtures, symfony, symfony-2.1

Solution

Found the solution in this issue on the repository of DoctrineFixturesBundle.

Rearranging the dependancies and using another version of `doctrine/data-fixtures` solved the problem.

I replaced these lines in my composer.json:

"require": {
    "doctrine/data-fixtures": "2.0.*@dev",
    "doctrine/doctrine-fixtures-bundle" : "dev-master"
}

with

"require": {
    "doctrine/doctrine-fixtures-bundle" : "dev-master",
    "doctrine/data-fixtures": "1.0.*@ALPHA"
}

And the fixtures are being loaded again.

Problem

After updating a project from Symfony 2.0.22 to 2.1.8 I get this error when executing `doctrine:fixtures:load` via Terminal Fatal error: Class 'Doctrine\Common\DataFixtures\Loader' not found in {symfony_install_folder}/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/DataFixtures/ContainerAwareLoader.php on line 27 The fixtures worked on 2.0.22 and I've checked the official documentation to see if I've set everything correctly My composer.json looks like this: ``` { "name": "symfony/framework-standard-edition", "description": "The \"Symfony Standard Edition\" distribution", "autoload": { "psr-0": { "": "src/" } }, "require": { "php": ">=5.3.3", "symfony/symfony": "2.1.8", "doctrine/orm": ">=2.2.3,<2.5-dev", "doctrine/dbal": "2.3.*@dev", "doctrine/doctrine-bundle": "1.1.*", "twig/extensions": "1.0.*@dev", "symfony/assetic-bundle": "2.1.*", "symfony/swiftmailer-bundle": "2.1.*", "symfony/monolog-bundle": "2.1.*", "sensio/distribution-bundle": "2.1.*", "sensio/framework-extra-bundle": "2.1.*", "sensio/generator-bundle": "2.1.*", "jms/security-extra-bundle": "1.2.*", "jms/di-extra-bundle": "1.1.*", "kriswallsmith/assetic": "1.1.*@dev", "doctrine/common": "2.4.*@dev", "doctrine/data-fixtures": "2.0.*@dev", "doctrine/doctrine-fixtures-bundle" : "dev-master", "gedmo/doctrine-extensions": "2.3.*@dev", "stof/doctrine-extensions-bundle" : "1.1.*@dev", "friendsofsymfony/jsrouting-bundle": "1.1.*@dev" }, "scripts": { "post-install-cmd": [ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" ], "post-update-cmd": [ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" ] }, "extra": { "symfony-app-dir": "app", "symfony-web-dir": "web", "branch-alias": { "dev-master": "2.1-dev" } } } ``` And my app/AppKernel.php ``` <?php use Symfony\Component\HttpKernel\Kernel; use Symfony\Component\Config\Loader\LoaderInterface; class AppKernel extends Kernel { public function registerBundles() { $bundles = array( new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), new Symfony\Bundle\SecurityBundle\SecurityBundle(), new Symfony\Bundle\TwigBundle\TwigBundle(), new Symfony\Bundle\MonologBundle\MonologBundle(), new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), new Symfony\Bundle\AsseticBundle\AsseticBundle(), new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(), new JMS\AopBundle\JMSAopBundle(), new JMS\DiExtraBundle\JMSDiExtraBundle($this), new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(), new FOS\JsRoutingBundle\FOSJsRoutingBundle(), ); if (in_array($this->getEnvironment(), array('dev', 'test'))) { $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); $bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(); } return $bundles; } public function registerContainerConfiguration(LoaderInterface $loader) { $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml'); } public function getCharset() { return 'UTF-8'; } } ``` The first fixture being loaded: ``` use Doctrine\Common\DataFixtures\AbstractFixture, Doctrine\Common\DataFixtures\OrderedFixtureInterface, Doctrine\Common\Persistence\ObjectManager; use Symfony\Component\DependencyInjection\ContainerAwareInterface, Symfony\Component\DependencyInjection\ContainerInterface; use Acme\CoreBundle\Entity\User; class LoadUserData extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface { private $container; public function setContainer(ContainerInterface $container = null) { $this->container = $container; } public function load(ObjectManager $manager) { // Do stuff } public function getOrder() { return 1; } } ``` I can't figure out where to look, `composer update` is running just fine. Any thoughts?

Original source