mauris/samsui

此包已被弃用,不再维护。没有建议的替代包。

Samsui 是一个用于构建 PHP 对象的工厂库,这些对象对于在应用程序中设置测试数据非常有用。

1.0.0 2013-11-03 08:24 UTC

This package is not auto-updated.

Last update: 2020-11-23 07:16:45 UTC


README

#Samsui

Build Status Latest Stable Version Total Downloads Scrutinizer Code Quality Code Coverage

Samsui 是一个用于构建 PHP 对象的工厂库,这些对象对于在应用程序中设置测试数据非常有用。它主要受到 Rosie(JavaScript)和 factory_girl(Ruby)的启发。

Samsui women 指的是一群前往新加坡从事建筑和工业工作的中国移民。他们的辛勤工作为新加坡作为殖民地和年轻国家的发展做出了贡献。

使用 Samsui,您可以快速构建原型应用程序并生成大量数据以测试您的原型。

  • Samsui 由 Sam Yong 创建并维护。
  • Samsui 使用 Travis CI 来检查代码是否正常工作。
  • Samsui 使用 [Scrutinizer CI] 来检查代码质量和测试覆盖率。
  • Samsui 使用 Composer 来加载和管理其依赖项。
  • Samsui 采用 BSD 3-Clause 许可证。

##安装

Samsui 是一个 PHP 库,它使用 Composer 来管理其依赖项。您可以通过 Composer 在应用程序中直接使用 Samsui

{
    "require": {
      "mauris/samsui": "1.0.*"
    }
}

然后只需运行 Composer

$ php composer.phar install

##用法

您可以为 Samsui 提供对象的定义

use Samsui\Factory;

$factory = new Factory();

// define an object quickly
$factory->define('person')
	->sequence('personId')
	->attr('firstName', 'James')
    ->attr('lastName', 'Clark')
    ->attr('email', function ($i, $o) {
        return strtolower($o->firstName . '.' . $o->lastName . '@example.com');
    })
	->attr('createdTime', function () {
		return time();
	});

您可以一次构建一个,或者一次性构建数百个!

// build them on the go!
$person = $factory->build('person');

// or build many!~
$people = $factory->build('person', 500);

人的对象的输出将是(嗯,在 JSON 编码之后)

{
    "personId": "1",
    "firstName": "James",
    "lastName": "Clark",
    "email": "james.clark@example.com",
    "createdTime": "1383465074"
}

您还可以使用 Samsui 的假数据生成器来填充您的对象,使其具有真实性和随机性

use Samsui\Factory;
use Samsui\Generator\Generator;

$factory = new Factory();

// define an object quickly
$factory->define('person')
    ->sequence('personId')
    ->attr('firstName', Generator::person()->firstName)
    ->attr('lastName', Generator::person()->lastName)
    ->attr('email', function ($i, $o) {
        return Generator::email()->emailAddress(
            array(
                'firstName' => $o->firstName,
                'lastName' => $o->lastName,
                'domains' => array(
                    'hotmail.com',
                    'gmail.com',
                    'example.com'
                )
            )
        );
    })
    ->attr('createdTime', function () {
        return time();
    });

##即将推出

  • 基于地区(位置+语言)的数据生成
  • 实现与属性一起使用的数据生成器
    • 姓名(不同地区)
    • 电子邮件地址
    • 地址和邮政编码
    • 年龄(基于定义的年龄组)
    • 性别(具有自然出生率)
    • IP 地址 v4 和 v6
    • URLs
    • Lorem Ipsum 文本
    • 日期/时间(基于范围或序列)
    • 散列函数输出(SHA-1,SHA-256 等。)
    • GPS 纬度/经度,地面坐标
    • 手机号码
    • 颜色(RGB 数组,十六进制)
    • 图片(头像,尺寸)
  • 改进的 JSON 读取器
  • 直接生成工厂定义到 PHP 类