localheinz / factory-girl-definition
此包已被弃用且不再维护。作者建议使用 ergebnis/factory-girl-definition 包。
为breerly/factory-girl-php提供接口,以及轻松查找和注册实体定义的方法。
2.0.1
2019-12-14 08:48 UTC
Requires
- php: ^7.2
- breerly/factory-girl-php: ^1.0.3
- ergebnis/classy: ~0.5.0
- fzaninotto/faker: ^1.9.0
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
Suggests
- breerly/factory-girl-php: For creating a fixture factory the definitions can be used with.
README
为 breerly/factory-girl-php
提供接口,以及轻松查找和注册实体定义的方法。
安装
运行
$ composer require --dev ergebnis/factory-girl-definition
使用
创建定义
实现以下之一
Ergebnis\FactoryGirl\Definition\Definition
Ergebnis\FactoryGirl\Definition\FakerAwareDefinition
接口,并使用传递给accept()
的FactoryGirl\Provider\Doctrine\FixtureFactory
实例来定义实体
<?php namespace Foo\Bar\Test\Fixture\Entity; use Ergebnis\FactoryGirl\Definition\Definition; use FactoryGirl\Provider\Doctrine\FixtureFactory; use Foo\Bar\Entity; final class UserDefinition implements Definition { public function accept(FixtureFactory $fixtureFactory): void { $fixtureFactory->defineEntity(Entity\User::class, [ // ... ]); } }
💡 定义中可以定义任意数量的实体。但是,为每个实体创建一个定义可能是个好主意。
注册定义
懒实例化一个FactoryGirl\Provider\Doctrine\FixtureFactory
实例,并使用Definitions
查找定义,将定义注册到固定工厂,并可选地提供一个Faker\Generator
实例的定义
<?php namespace Foo\Bar\Test\Integration; use Doctrine\ORM; use Ergebnis\FactoryGirl\Definition\Definitions; use FactoryGirl\Provider\Doctrine\FixtureFactory; use Faker\Generator; use PHPUnit\Framework; abstract class AbstractIntegrationTestCase extends Framework\TestCase { /** * @var FixtureFactory */ private $fixtureFactory; final protected function entityManager(): ORM\EntityManager { // ... } final protected function faker(): Generator { // ... } final protected function fixtureFactory(): FixtureFactory { if (null === $this->fixtureFactory) { $fixtureFactory = new FixtureFactory($this->entityManager()); $fixtureFactory->persistOnGet(true); Definitions::in(__DIR__ . '/../Fixture') ->registerWith($fixtureFactory) ->provideWith($this->faker()); $this->fixtureFactory = $fixtureFactory; } return $this->fixtureFactory; } }
贡献
请查看 CONTRIBUTING.md
。
行为准则
请查看 CODE_OF_CONDUCT.md
。
此包使用MIT许可证授权。
许可证
此包使用MIT许可证授权。
请查看 LICENSE.md
。
好奇我在做什么?
📬 订阅我的列表,我偶尔会发送邮件告诉你我在做什么。