2017 © Pedro Peláez
 

library samsui

Samsui is a factory library for building PHP objects useful for setting up test data in your applications.

image

mauris/samsui

Samsui is a factory library for building PHP objects useful for setting up test data in your applications.

  • Tuesday, August 19, 2014
  • by mauris
  • Repository
  • 4 Watchers
  • 30 Stars
  • 39 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Samsui

Build Status Latest Stable Version Total Downloads Scrutinizer Code Quality Code Coverage, (*1)

Samsui is a factory library for building PHP objects useful for setting up test data in your applications. It is mainly inspired by Rosie for JavaScript and factory_girl for Ruby., (*2)

Samsui women refers to a group of Chinese immigrants who came to Singapore to work in construction and industries. Their hardwork contributed to Singapore's development as a colony and young nation., (*3)

With Samsui, you can quickly build prototype application and generate as many data as you need for testing your prototype., (*4)

  • Samsui was created by and maintained by Sam Yong.
  • Samsui uses Travis CI to check that the code works.
  • Samsui uses [Scrutinizer CI] to check code quality and test coverage.
  • Samsui uses Composer to load and manage its dependencies.
  • Samsui is licensed under the BSD 3-Clause license.

Installation

Samsui is a PHP library that manages its dependencies using Composer. You can directly use Samsui in your application through Composer:, (*5)

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

Then just run Composer:, (*6)

$ php composer.phar install

Usage

You can provide definition of your objects to Samsui:, (*7)

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();
    });

You can build one at a time, or hundreds of them on the go!, (*8)

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

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

The output of a person object would be (well, after JSON encoding):, (*9)

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

You can also use Samsui's fake data generator to fill your objects with real variety and randomity:, (*10)

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();
    });

Upcoming

  • Generation of data based on locale (location+language)
  • Implementation of Data Generators for use with attributes
    • [ ] Names (different locale)
    • [x] Email addresses
    • [ ] Addresses and Postal Codes
    • [x] Age (based on age groups defined)
    • [x] Gender (with Natural Birth Ratio)
    • [x] IP Address v4 and v6
    • [x] URLs
    • [x] Lorem Ipsum text
    • [x] Date/Times (based on range or sequence)
    • [x] Hash functions output (SHA-1, SHA-256 etc.)
    • [x] GPS latitude / longitude, land coordiates
    • [ ] Handphone numbers
    • [x] Colors (RGB array, Hexadecimal)
    • [ ] Images (Avatar, Sized)
  • Improved JSON reader
  • Generation of Factory definitions to PHP classes directly

The Versions

19/08 2014

dev-master

9999999-dev

Samsui is a factory library for building PHP objects useful for setting up test data in your applications.

  Sources   Download

BSD-3-Clause

The Requires

 

01/05 2014

dev-scrutinizer-patch-2

dev-scrutinizer-patch-2

Samsui is a factory library for building PHP objects useful for setting up test data in your applications.

  Sources   Download

BSD-3-Clause

The Requires

 

01/05 2014

dev-scrutinizer-patch-1

dev-scrutinizer-patch-1

Samsui is a factory library for building PHP objects useful for setting up test data in your applications.

  Sources   Download

BSD-3-Clause

The Requires

 

03/11 2013

1.0.0

1.0.0.0

Samsui is a factory library for building PHP objects useful for setting up test data in your applications.

  Sources   Download

BSD-3-Clause

The Requires