alanwillms/phactory

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

1.1.4 2013-05-31 04:28 UTC

README

(ver documentação em português)

一个用于创建测试数据的 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 允许您做的基本操作,也支持固定值、依赖关系和关系,阅读维基文档获取更多信息。

它不做的事情

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.1.4

Build Status

安装

通过 composer

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

通过 GIT

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

<?php

require 'phactory/bootstrap.php';