sharapov/zend-expressive-doctrine-fixtures

Zend Expressive Library that provides Doctrine Data-Fixture functionality

0.1 2019-04-29 10:10 UTC

This package is auto-updated.

Last update: 2020-05-29 12:36:26 UTC


README

Build Status

About

This library provides integration with Zend Expressive and Doctrine Data Fixture. Also support PSR-11.

Get started

Instalation
composer require sharapov/zend-expressive-doctrine-fixtures:0.0.1
Registering Fixtures

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'   => \Sharapov\DoctrineFixtures\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'
];

Usage

Command Line

Access the Doctrine command line as following

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:

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;
    }
}