ergebnis / factory-muffin-definition
此包已被弃用,不再维护。未建议替代包。
提供league/factory-muffin的实体定义接口,以及查找和注册实体定义的简便方法。
2.0.0
2019-12-10 21:48 UTC
Requires
- php: ^7.2
- ergebnis/classy: ~0.5.0
- league/factory-muffin: ^3.0.1
Requires (Dev)
- ergebnis/php-cs-fixer-config: ~1.0.0
- ergebnis/phpstan-rules: ~0.14.0
- ergebnis/test-util: ~0.9.0
- infection/infection: ~0.14.2
- jangregor/phpstan-prophecy: ~0.4.2
- localheinz/composer-normalize: ^1.3.1
- phpstan/extension-installer: ^1.0.3
- phpstan/phpstan: ~0.11.19
- phpstan/phpstan-deprecation-rules: ~0.11.2
- phpstan/phpstan-strict-rules: ~0.11.1
- phpunit/phpunit: ^8.4.3
Replaces
This package is auto-updated.
Last update: 2020-08-28 18:47:13 UTC
README
提供league/factory-muffin的实体定义接口,以及查找和注册实体定义的简便方法,灵感来源于ergebnis/factory-girl-definition
。
安装
运行
$ composer require --dev ergebnis/factory-muffin-definition
使用
创建定义
实现Definition
接口,并将传递的League\FactoryMuffin\FactoryMuffin
实例传递给accept()
以定义实体
<?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([ // ... ]); } }
💡 在定义中可以定义任意数量的实体。然而,为每个实体创建一个定义可能是个好主意。
注册定义
延迟实例化一个League\FactoryMuffin\FactoryMuffin
实例,并使用Definitions
查找定义并将它们注册到工厂中
<?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.md
。
行为准则
许可
此包使用MIT许可证授权。
请查看LICENSE.md
。
好奇我在构建什么?
📬 订阅我的列表,我将不定期通过电子邮件通知你我在做什么。