This library provides integration with Zend Expressive and Doctrine Data Fixture. Also support PSR-11.
composer require codeedu/zendexpr-doctrine-fixture:0.1.1
To register fixtures add the fixtures in your configuration.
[
'doctrine' => [
'fixture' => [
'MyFixtures' => __DIR__ . '/../src/Fixture',
]
]
];
Register factory to create the command:
[
'factories' => [
'doctrine:fixtures_cmd:load' => \CodeEdu\FixtureFactory::class
]
];
We suggest to configure Doctrine ORM and commands with Zend Expressive using this gist. This configuration uses DoctrineModule. DoctrineModule provides easily configuration to integration Doctrine ORM in Zend Framework 2 Applications, so the approach is enjoy it.
Now in doctrine.config.php, so add doctrine:fixtures_cmd:load to:
$command = [
//.....,
'doctrine:fixtures_cmd:load'
];
Access the Doctrine command line as following
./vendor/bin/doctrine-module data-fixture:import
This library provides inject the service container in fixtures. So add interface FixtureContainerInterface, see below:
class MyFixture implements FixtureInterface, FixtureContainerInterface
{
private $container;
public function load(ObjectManager $manager){
$myService = $this->container->get(MyService::class);
}
public function getContainer()
{
return $this->container;
}
public function setContainer(ContainerInterface $container)
{
$this->container = $container;
}
}