PHP Classes

File: exercise/examplearray.php

Recommend this page to a friend!
  Classes of Jorge Castro   Chaos Machine One   exercise/examplearray.php   Download  
File: exercise/examplearray.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Chaos Machine One
Generate random data that obeys to formulas
Author: By
Last change: 1.5
1.5
Date: 4 years ago
Size: 2,727 bytes
 

Contents

Class file image Download
<?php

use eftec\chaosmachineone\ChaosMachineOne;

use
eftec\minilang\MiniLang;
include
"../vendor/autoload.php";

$chaos=new ChaosMachineOne();
$chaos->setDictionary('_index',100);
                                  
include
"../lib/en_US/Person.php";



// skip next day
// skip next workingday
// skip next weekend
// skip next monday
// skip add 8 hours
// skip next month (first month)


$chaos->table('table',1000)
    ->
field('name','string','database','',0,200)
    ->
field('fullname','string','database','',0,200)
    ->
field('text','string','database','',0,40)
    ->
field('prefix','string','database','',0,40)
    ->
field('prefixprop','string','database','',0,40)
    ->
field('nationalid','string','database','',0,40)
    ->
field('email','string','database','',0,40)
    ->
field('sex','int','local',0,0,1)
    ->
setArray('suffix',PersonContainer::$suffix,'increase')
    ->
setArray('firstNameMale',PersonContainer::$firstNameMale,"increase") // first name are not popular, last names are most popular
   
->setArray('lastName',PersonContainer::$lastName)
    ->
setArray('titleMale',PersonContainer::$titleMale)
    ->
setArray('firstNameFemale',PersonContainer::$firstNameFemale,"decrease") // first name are popular, last names are least popular
   
->setArray('titleFemale',PersonContainer::$titleFemale)
    ->
setArray('loremIpsum',PersonContainer::$loremIpsum)
    ->
setArray('domains',PersonContainer::$domains)
    ->
setArray('prefixarray',[''=>70,'Dr.'=>10,'Phd.'=>20]) //70% change of no prefix, 10% of Dr. and 20% of PhD
   
->setFormat('maleNameFormats',PersonContainer::$maleNameFormats)
    ->
setFormat('femaleNameFormats',PersonContainer::$femaleNameFormats)
    ->
setFormat('formatProp',['{{firstNameMale}}'=>80,'{{suffix}} {{firstNameMale}}'=>20]) // 80% only name, 20% suffix and name
   
->gen('when always then sex=random(0,1)')
    ->
gen('when sex=0 set name.value=randomarray("firstNameMale")')
    ->
gen('when sex=0 set fullname.value=randomformat("maleNameFormats")') /** @see \eftec\chaosmachineone\ChaosMachineOne::randomformat */
   
->gen('when sex=1 set name.value=randomarray("firstNameFemale")')
    ->
gen('when sex=1 set fullname.value=randomformat("femaleNameFormats")')
    ->
gen('when always set prefixprop.value=randomformat("formatProp")')
    ->
gen('when always set prefix.value=randomarray("prefixarray")')
    ->
gen('when always set nationalid.value=randommask("##-00 uu ll \0 - xx (?)","lastName")') // 0 optional number #=forced number, u=upper text, l=lower text o=optional text,a=array
   
->gen('when always then text.value=randomtext("Lorem ipsum dolor","loremIpsum",1,4,30)')
    ->
gen('when always then email.value=name.getvalue and email.concat=randommask("@?","domains")')
    ->
show(['name','fullname','text','prefix','prefixprop','nationalid','email']);