FixturesBundle
, (*1)
Symfony2 bundle for propel fixtures.
Т.к. обычный таск propel:fixtures:load
выдаёт ошибку Attempted to call method "getPeerClassname" on class "Propel\Runtime\Map\TableMap".
, чтобы его поправить пришлось переопределить таск и файлы папки DataFixtures/Loader
.
Всё это вынесено в отдельный бандл FixturesBundle., (*2)
Installation
Добавьте ItBlasterFixturesBundle в composer.json
:, (*3)
{
"require": {
"it-blaster/fixtures-bundle": "dev-master"
},
}
Теперь запустите композер, чтобы скачать бандл командой:, (*4)
``` bash
$ php composer.phar update it-blaster/fixtures-bundle, (*5)
Композер установит бандл в папку проекта `vendor/it-blaster/fixtures-bundle`.
Далее подключите бандл в ядре `AppKernel.php`:
``` php
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new ItBlaster\FixturesBundle\ItBlasterFixturesBundle(),
);
}
Dump - Создание фикстур
Таск создания fixtures запускается командой php app/console it-blaster:fixtures:dump
. Файл с фикстурами будет создан в app/propel/fixtures
., (*6)
Load - Загрузка из фикстур в базу
Таск загрузки fixtures запускается командой php app/console it-blaster:fixtures:load @AppMainBundle
, где @AppMainBundle имя бандла, где у вас лежат файлы-fixtures. По умолчанию файлы-fixtures будут браться из папки app/propel/fixtures
., (*7)
Credits
It-Blaster it-blaster@yandex.ru, (*8)