ergebnis/factory-muffin-definition

This package is abandoned and no longer maintained. No replacement package was suggested.

Provides an interface for, and an easy way to find and register entity definitions for league/factory-muffin.

Maintainers

πŸ‘ localheinz

Package info

github.com/ergebnis/factory-muffin-definition

pkg:composer/ergebnis/factory-muffin-definition

Fund package maintenance!

localheinz

Statistics

Installs: 6 507

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 0

2.0.0 2019-12-10 21:48 UTC

MIT 129e71fb1d98030c5c99d5f79369194b1c315ca6

  • Andreas MΓΆller <am.woop@localheinz.com>

This package is auto-updated.

Last update: 2020-08-28 18:47:13 UTC


README

πŸ‘ Integrate
πŸ‘ Prune
πŸ‘ Release
πŸ‘ Renew

πŸ‘ Code Coverage
πŸ‘ Type Coverage

πŸ‘ Latest Stable Version
πŸ‘ Total Downloads

Provides an interface for, and an easy way to find and register entity definitions for league/factory-muffin, inspired by ergebnis/factory-girl-definition.

Installation

Run

$ composer require --dev ergebnis/factory-muffin-definition

Usage

Create Definitions

Implement the Definition interface and use the instance of League\FactoryMuffin\FactoryMuffin that is passed in into accept() to define entities:

<?php

namespace Foo\Bar\Test\Fixture\Entity;

use Ergebnis\FactoryMuffin\Definition\Definition;
use Foo\Bar\Entity;
use League\FactoryMuffin\FactoryMuffin;

final class UserDefinition implements Definition
{
 public function accept(FactoryMuffin $factoryMuffin): void
 {
 $factoryMuffin->define(Entity\User::class)->setDefinitions([
 // ...
 ]);
 }
}

πŸ’‘ Any number of entities can be defined within a definition. However, it's probably a good idea to create a definition for each entity.

Register Definitions

Lazily instantiate an instance of League\FactoryMuffin\FactoryMuffin and use Definitions to find definitions and register them with the factory:

<?php

namespace Foo\Bar\Test\Integration;

use Ergebnis\FactoryMuffin\Definition\Definitions;
use League\FactoryMuffin\FactoryMuffin;
use League\FactoryMuffin\Stores;
use PHPUnit\Framework;

abstract class AbstractIntegrationTestCase extends Framework\TestCase
{
 final protected function factoryMuffin(): FactoryMuffin
 {
 static $factoryMuffin = null;

 if (null === $factoryMuffin) {
 $factoryMuffin = new FactoryMuffin(new Stores\ModelStore('save'));

 Definitions::in(__DIR__ . '/../Fixture')->registerWith($factoryMuffin);
 }

 return $factoryMuffin;
 }
}

Contributing

Please have a look at CONTRIBUTING.md.

Code of Conduct

Please have a look at CODE_OF_CONDUCT.md.

License

This package is licensed using the MIT License.

Please have a look at LICENSE.md.

Curious what I am building?

πŸ“¬ Subscribe to my list, and I will occasionally send you an email to let you know what I am working on.