revenkroz / laminas-doctrine-fixture-module

Doctrine Data Fixture Module for Zend/Laminas with cli integration

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Laminas Doctrine Fixture module

Introduction

This is fork from Houndog/DoctrineDataFixtureModule.

The DoctrineDataFixtureModule module intends to integrate Doctrine2 ORM Data Fixtures with Zend Framework 3.

Installation

Add this project in your repositories in composer.json:

"repositories": [
    {
      "type": "git",
      "url": "https://github.com/revenkroz/laminas-doctrine-fixture-module"
    }
]

Install package:

composer req revenkroz/laminas-doctrine-fixture-module:dev-main

Add DoctrineFixtureModule to your modules.

Register Fixtures

To register fixtures with Doctrine module add the fixtures in your configuration.

<?php

return [
    'doctrine' => [
        'fixture' => [
            'ModuleName' => __DIR__ . '/../src/ModuleName/Fixture',
        ],
    ],
];

Usage

Default

./vendor/bin/doctrine-module orm:fixtures:load 

Purge with truncate and without confirmation

./vendor/bin/doctrine-module orm:fixtures:load -n --purge-with-truncate 

Append data instead of delete

./vendor/bin/doctrine-module orm:fixtures:load -n --append

How to inject container into fixtures file

<?php

namespace Application\DataFixtures;

use Doctrine\Common\DataFixtures\FixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use DoctrineDataFixtureModule\ContainerAwareInterface;
use DoctrineDataFixtureModule\ContainerAwareTrait;

class LoadUser implements FixtureInterface, ContainerAwareInterface
{
    use ContainerAwareTrait;

    /**
     * @param ObjectManager $manager
     */
    public function load(ObjectManager $manager)
    {
        $myService = $this->container->get('my_service');        
    }
}

About

Doctrine Data Fixture Module for Zend/Laminas with cli integration


Languages

Language:PHP 100.0%