rbone / phactory
一个用于生成测试数据的PHP库
1.4.0
2014-11-05 01:57 UTC
Requires
- php: >=5.3
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-14 12:30:03 UTC
README
一个用于创建测试数据的PHP库。设计上注重简单性和可扩展性。
用法
定义工厂如下
<?php class UserPhactory { public function blueprint() { return array( 'name' => 'User #{sn}', 'activated' => true, ); } public function admin() { return array( 'isadmin' => true, ); } }
然后使用它们
<?php $user = Phactory::user(); echo $user->name; // 'User 0001' echo $user->activated ? 'true' : 'false'; // 'true' $admin = Phactory::user('admin'); echo $user->name; // 'User 0002' echo $user->activated ? 'true' : 'false'; // 'true' echo $user->isadmin ? 'true' : 'false'; // 'true'
这只是Phactory允许您做的基本操作,还支持固定数据、依赖关系和关联,请阅读Wiki文档获取更多信息。
它不做什么
Phactory不了解您的数据库或ORM,这是有意为之。Phactory旨在易于扩展以支持所需的一切,而不是尝试支持所有ORM。例如,使用我们上面的UserPhactory
<?php class User {} class MyCustomBuilder extends \Phactory\Builder { protected function toObject($name, $values) { $object = new $name; foreach ($values as $key => $value) { $object->$key = $value; } return $object; } } Phactory::builder(new MyCustomBuilder); $user = Phactory::user(); echo get_class($user); // 'User'
状态
至v1.3.0
安装
通过composer
{ "require-dev": { "rbone/phactory": "1.3.*" } }
通过GIT
git clone git://github.com/rbone/phactory.git
<?php
require 'phactory/bootstrap.php';