rbone/phactory

一个用于生成测试数据的PHP库

1.4.0 2014-11-05 01:57 UTC

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

Build Status

安装

通过composer

{
  "require-dev": {
    "rbone/phactory": "1.3.*"
  }
}

通过GIT

git clone git://github.com/rbone/phactory.git

<?php

require 'phactory/bootstrap.php';