skie/cakephp-factory-muffin

CakePHP FactoryMuffin 集成插件

安装数: 20,373

依赖项: 0

建议者: 0

安全性: 0

星标: 3

关注者: 3

分支: 1

开放问题: 1

类型:cakephp-plugin

1.0.3 2017-05-08 22:09 UTC

This package is not auto-updated.

Last update: 2024-09-15 02:06:30 UTC


README

插件集成了 FactoryMuffin 和 Faker,用于数据填充和测试。

提供的功能

  • CakePHP ORM 集成 FactoryMuffin。
  • 易于注入到您的项目中。

安装

PHP 5.6+ 和 Composer 是必需的。

在您的 composer.json 中,只需在 "require" 部分添加 "skie/cakephp-factory-muffin": "*"

{
    "require": {
        "skie/cakephp-factory-muffin": "*"
    }
}

工厂定义。

App\Model\Factory 命名空间中定义工厂类,用于应用程序级别,在 ${PluginScope}\Model\Factory 中定义,用于插件。

每个工厂类应包含定义方法,描述如何创建实体。

按照惯例,工厂类应与表类名匹配,但带有 Factory 后缀。

namespace App\Model\Factory;

use CakephpFactoryMuffin\Model\Factory\AbstractFactory;
use League\FactoryMuffin\Faker\Facade as Faker;

class UsersFactory extends AbstractFactory {

    public function definition()
    {
        return [
            'first_name' => Faker::firstName(),
            'last_name' => Faker::lastName(),
            'username' => function ($object, $saved) {
                return strtolower($object['last_name'] . '_' . $object['first_name']);
            },
            'password' => Faker::word(),
        ];
    }
}

用法

在测试或填充文件中,您可以使用 CakephpFactoryMuffin\FactoryLoader 对象来管理工厂加载并将创建过程派遣到 FactoryMuffin。

此类执行 CakePHP ORM 与 FactoryMuffin 的集成,并服务于 CakePHP 表命名约定,如 'Users' 或 'Plugin.Records'。

要加载工厂定义,可以使用 FactoryLoader::load('Users')。要加载所有应用程序级别的工厂,请使用 FactoryLoader::loadAll()。要加载插件 Plugin/Name 的工厂,请使用 FactoryLoader::loadAll('Plugin/Name')

示例

FactoryLoader::load('Users');
$user = FactoryLoader::create('Users');
$users = FactoryLoader::seed(10, 'Users');

在此创建了 11 个用户记录。

在测试中,我们需要刷新创建的对象。这可以通过调用

FactoryLoader::getInstance()->getFactoryMuffin()->deleteSaved();