Быстрый старт
Базовые определения
Фикстура - класс в котором описано то как добавлять/удалять данные в бд.
Загрузчик фикстур - класс, который позволяет загрузить одну или несколько фикстур.
Фильтр фикстур - класс, описывающий условия того, какие фикстуры должны быть использованы.
Движок для запуска фикстур (Executor) - компонент который с помощью загрузчика фикстур, загружает фикстуры, а далее с помощью фильтра получает список фикстур которые должны быть выполнены. Далее Executor выполняет получившийся список фикстур.
Описание фикстур
return [
'nnx_doctrine_fixture_module' => [
// В секции fixturesLoaders описываются загрузчики фикстур
'fixturesLoaders' => [
//Имя цепочки загрузчиков фикстур.
'test' => [
//Имя загрузчика фикстур. Может быть произвольным. Нужно только для возможности переопределить конфиг в другом модуле
'classifier' => [
//Плагин из \Nnx\DoctrineFixtureModule\Loader\FixtureLoaderManagerInterface
'name' => ClassLoader::class,
//Настройки для загрузчика фикстур
'options' => [
'classList' => [
TestModule1\FooFixture::class,
TestModule1\BarFixture::class,
]
]
]
]
],
// В секции filters описываются фильтры для фикстур
'filters' => [
//Имя цепочки фильтров
'test' => [
//Имя фильтра фикстур. Может быть произвольным. Нужно только для возможности переопределить конфиг в другом модуле
'chainFixtureFilter' => [
//Плагин из \Nnx\DoctrineFixtureModule\Filter\FixtureFilterManagerInterface
'name' => FilterUsedFixture::class
]
]
],
//Движок для запуска фикстур (Executor)
'executors' => [
//Имя движка
'test' => [
//Имя используемого загрузчика фикстур
'fixturesLoader' => 'testChainFixtureLoader',
//Имя использумоего набора фильтров
'filter' => 'testChainFixtureFilter'
]
]
]
];
Для начала работы с фикстурами необходимо:
- В секции nnx_doctrine_fixture_module в разделе fixturesLoaders описать загрузчик фикстур
- Ключом является имя загрузчика, а значением массив.
- Каждый элемент массива является также массивом описывающим конкретный загрузчик
- Массив описывающий конкретный загрузчик имеет два ключа name (имя загрузчика) и options (настройки загрузчика)
- Значение name - это имя плагина зарегистрированного в плагин менеджере \Nnx\DoctrineFixtureModule\Loader\FixtureLoaderManagerInterface
- Для регистрации своего загрузчика, нужно добавить его в секцию nnx_fixture_loader конфига приложения
- Если необходимо в секции nnx_doctrine_fixture_module в разделе filters описать фильтры фикстур
- Ключом является имя фильтра, а значением массив.
- Каждый элемент массива является также массивом описывающим конкретный фильтр
- Массив описывающий конкретный фильтр имеет два ключа name (имя фильтра) и options (настройки фильтра)
- Значение name - это имя плагина зарегистрированного в плагин менеджере \Nnx\DoctrineFixtureModule\Filter\FixtureFilterManagerInterface
- Для регистрации своего фильтра, нужно добавить его в секцию nnx_fixture_filter конфига приложения
- В секции nnx_doctrine_fixture_module в разделе executors описать движок для запуска фикстур (Executor)
- Ключом является имя движка, а значением массив.
- В массиве для ключа fixturesLoader - указывается загрузчик фикстур (должно присутствовать в секции nnx_doctrine_fixture_module в разделе fixturesLoaders)
- Можно указать фильтр фикстур, с помощью ключа filter. (должен присутствовать в секции nnx_doctrine_fixture_module в разделе filters)
Для запуска фикстур необходимо выполнить консольную команду вида:
php public/index.php nnx:fixture import executor test --object-manager=doctrine.entitymanager.test'
В данном примере указывается что нужно импортировать данные, с помощью движка фиктсур 'test'. В качестве object-manager'a Doctrine используется doctrine.entitymanager.test