localheinz / factory-muffin-definition
此包已被弃用且不再维护。作者建议使用 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:11 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
。
行为准则
请查看 CODE_OF_CONDUCT.md
。
许可证
此包使用 MIT 许可证授权。
请查看 LICENSE.md
。
好奇我在做什么?
📬 订阅我的列表,我将偶尔发送电子邮件通知你我在做什么。