, (*1)
About
This library provides integration with Zend Expressive and Doctrine Data Fixture. Also support PSR-11., (*2)
Get started
Instalation
composer require codeedu/zendexpr-doctrine-fixture:0.1.1
Registering Fixtures
To register fixtures add the fixtures in your configuration., (*3)
[
'doctrine' => [
'fixture' => [
'MyFixtures' => __DIR__ . '/../src/Fixture',
]
]
];
Register factory to create the command:, (*4)
[
'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., (*5)
Now in doctrine.config.php, so add doctrine:fixtures_cmd:load to:
php
$command = [
//.....,
'doctrine:fixtures_cmd:load'
];
, (*6)
Usage
Command Line
Access the Doctrine command line as following, (*7)
Import
./vendor/bin/doctrine-module data-fixture:import
Dependency Injection with Fixtures
This library provides inject the service container in fixtures. So add interface FixtureContainerInterface, see below:, (*8)
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;
}
}