Быстрый старт
Базовые определения
Фикстура – класс, в котором описано, то как добавлять/удалять данные в бд.
Загрузчик фикстур – класс, который, позволяет загрузить одну или несколько фикстур.
Фильтр фикстур – класс, описывающий условия того, какие фикстуры должны быть использованы.
Движок для запуска фикстур (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