inrage/doctrine-fixtures-env

Loads Doctrine Data Fixtures by environment (prod, dev, test, ...)

dev-master 2014-08-18 15:52 UTC

This package is auto-updated.

Last update: 2024-03-29 03:30:48 UTC


README

Loads Doctrine Data Fixtures by environment (prod, dev, test, ...)

Installation (with composer)

composer.json

{
        "require": {
                "inrage/doctrine-fixtures-env": "dev-master"
        },
        "repositories": [
                {
                        "type": "git",
                        "url": "git@github.com:inRage/DoctrineFixturesEnv.git"
                }
        ]
}

Now download the bundle:

$ php composer.phar update inrage/doctrine-fixtures-env

Usage

Create your DataFixture

<?php
// src/Acme/DemoBundle/DataFixtures/ORM/LoadDevUsersData.php

namespace Acme\DemoBundle\DataFixtures\ORM;

use Doctrine\Common\Persistence\ObjectManager;
use Acme\DemoBundle\Entity\AcmeItem;
use inrage\DataFixturesEnv\AbstractDataFixture;

class LoadDevUsersData extends AbstractDataFixture
{
    /**
     * Performs the actual fixtures loading.
     *
     * @see \Doctrine\Common\DataFixtures\FixtureInterface::load()
     *
     * @param ObjectManager $manager The object manager.
     */
    protected function doLoad(ObjectManager $manager)
    {
        $item = new AcmeItem();
        $item->setHello('world');

        $this->addReference('hello-world', $item);

        $manager->persist($user);

        $manager->flush();
    }

    /**
     * Returns the environments the fixtures may be loaded in.
     *
     * @return array The name of the environments.
     */
    protected function getEnvironments()
    {
        return array('dev');
    }

    /**
     * Get the order of this fixture
     *
     * @return integer
     */
    public function getOrder()
    {
        return 1;
    }
}

Console

app/console doctrine:fixtures:load --env=prod
app/console doctrine:fixtures:load --env=dev