dknx01/factory-muffin-backery

FactoryMuffin 的后端烘焙店。通过别名创建对象,包括只在实例化时设置参数

安装: 5

依赖: 0

建议者: 0

安全: 0

类型:bundle

dev-master 2017-03-26 10:22 UTC

This package is auto-updated.

Last update: 2024-09-15 07:45:52 UTC


README

FactoryMuffinBackery

Factory Muffin(《https://github.com/thephpleague/factory-muffin》)的包装器

使用方法

Muffin 类

Dknx01\FactoryMuffinBackery\DVO\Muffin

setObjectClass: 设置完整的类名

setCreatorMethod: 设置创建方法:create, instance, seed

setArguments: 设置对象的参数

setSeedTimes: 设置要创建的对象数量

setMaker: 设置一个制作函数

setCallback: 设置一个回调函数

示例类

namespace dknx01\FactoryMuffinBackery\Test;

class TestStub
{

}

use Dknx01\FactoryMuffinBundle\DVO\Muffin;
use Dknx01\FactoryMuffinBundle\MuffinBackery;
use League\FactoryMuffin\FactoryMuffin;
use League\FactoryMuffin\Stores\ModelStore;

class TestFactory
{
    /**
     * @var MuffinBackery
     */
    private $backery;

    public function createObject()
    {
        $this->backery = new MuffinBackery();
        $this->backery->setFactoryMuffin(new FactoryMuffin(new ModelStore()));

        $muffin = new Muffin();
        $muffin->setObjectClass(TestStub::class)->setCreatorMethod('instance');
        $this->backery->addMuffin($muffin, 'myStub');
    }
    /**
    * @return MuffinBackery
     */
    public function getBackery(): MuffinBackery
    {
        return $this->backery;
    }
}

测试类

class DefaultControllerTest extends TestCase
{
    public function testIndex()
    {
        $factory = new TestFactory();
        $factory->createObject();
        var_dump($factory->getBackery()->load()->getByAlias('myStub'));
    }
}