skie / cakephp-factory-muffin
CakePHP FactoryMuffin 集成插件
1.0.3
2017-05-08 22:09 UTC
Requires
Requires (Dev)
- cakephp/cakephp-codesniffer: dev-master
- phpunit/phpunit: *
This package is not auto-updated.
Last update: 2024-09-15 02:06:30 UTC
README
插件集成了 FactoryMuffin 和 Faker,用于数据填充和测试。
提供的功能
- CakePHP ORM 集成 FactoryMuffin。
- 易于注入到您的项目中。
安装
在您的 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();