amstaffix/alice-fixtures-smart-loader

Библиотека для загрузки фикстур Alice в БД

0.1.7 2014-09-08 13:48 UTC

README

Данная библиотека позволяет загружать подготовленные фикстуры от nelmio/alice (https://github.com/nelmio/alice).

Данная библиотека находится в разработке и может быть изменена в любой момент без сохранения обратной совместимости

ВАЖНО

Изначально библиотека создавалась для работы со сгенерированными фикстурами из рабочей базы данных, из-за чего связи между сущностями не сохранялись.

В связи с этим:

  • библиотека сама проходится по всем ассоциациям и добавляет необходимые связи. (На данный момент работает только многие-к-одному)
  • если связь уже установлена в самом файле-с-фикстурами, то библиотека её не заменяет
  • могут иметься и другие непредвиденные проблемы

Установка

Используя Composer

$ composer require amstaffix/alice-fixtures-smart-loader:0.1.*

Примеры

<?php
use Amstaffix\AliceFixturesSmartLoader\FixturesLoader;
// ...
function(ObjectManager $om, $dir) {
    (new FixturesLoader())
        ->withManager($om)
        ->fromDir($dir)
        ->load();
}
// ...

Будут загружены все сущности из директории, и для каждой из них будут проставлены связи между друг другом

<?php
use Amstaffix\AliceFixturesSmartLoader\FixturesLoader;
// ...
function(ObjectManager $om, $dir) {
    (new FixturesLoader())
        ->withManager($om)
        ->oneClass("Amstaffix\AliceFixturesSmartLoader\Tests\Entity\Author")
        ->fromDir($dir)
        ->load();
}
// ...

В данном случае будут загружены фикстуры только для класса Author

<?php
use Amstaffix\AliceFixturesSmartLoader\FixturesLoader;
// ...
function(ObjectManager $om, $dir) {
    (new FixturesLoader())
        ->withManager($om)
        ->oneClass("Amstaffix\AliceFixturesSmartLoader\Tests\Entity\Book")
        ->fromDir($dir)
        ->load();
}
// ...

А в данном случае будут загружены сущности для Book и Author, а так же будут проставлены рандомно связи между ними.

TODO