1. Go to this page and download the library: Download eftec/chaosmachineone library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
eftec / chaosmachineone example snippets
$this->gen('when _index<40 then idtable.accel=1'); // the acceleration is 1 until index=40
$this->gen('when _index<60 then idtable.accel=-1'); // the acceleration is -1 until index=60
$this->gen('when _index<100 then idtable.accel=-1'); // the acceleration is -1 until index=100
> $this->gen('when a1=1 then b1=1');
> $this->gen('when a1<10 then b1=10'); // if a1=1 then this expression is not evaluated.
>
$this->gen('when _index<200 then idtable.value=sin(0,0,1,1)'); // speed (horizontal) is 1.
$this->gen('when _index<200 then idtable.value=sin(0,0,10,1)'); // speed (horizontal) is 10
$this->gen('when _index<200 then idtable.value=atan(50,0,20,10)');
$this->gen('when _index<200 then idtable.value=parabola(50,0,1,1,1)');
$this->gen('when _index<200 then idtable.value=parabola(50,0,-1,1,1)');
$this->gen('when _index<200 then idtable.value=parabola(50,2500,-1,1,1)');
$this->gen('when _index<=360 then idtable.value=bell(50,0,30,100)');
$this->gen('when _index<=360 then idtable.value=bell(50,0,1,100)');
$this->gen('when _index<200 then idtable.value=randomprop(1,2,3,30,50,20)'); // 30% chance of 1, 50% chance of 2, 20% change of 3
$this->gen('when always then idtable.value=randomprop(idtable,null,1,1)); // there is a 50% chance the value is keep and 50% chance the value is null
$this->gen('when _index<200 then idtable.value=random(-10,10,0.2)');
$this->gen('when _index<200 then idtable.value=random(1,100,1,"fakebell")');
$this->gen('when date.weekday<6 set counter.speed=1'); // the speed during the working days is 1
$this->gen('when date.weekday>=6 set counter.speed=2'); // the speed during the weekends is 2
// counter=1 if counter initially is 1, and the variable date changes 1 day per iteraction the:
// monday: counter 2
// thuesday: counter 3
// wednesday: counter 4
// thursday: counter 5
// friday: counter 6
// saturday: counter 8
// sunday: counter 10
// monday: counter 11
$this->gen('when always set var1=1 and var2="hello world" and var3=2+3');
$this->gen('when always set var1=var2.getvalue');
$this->gen('when always set var1=var2.getvalueabs');
$this->gen('when field.day=1 set var1="first day of the month"');
$this->gen('when always set field.add=20'); // add 20 to the field
$this->gen('when always set field.add="5h"'); // adds 5 hours to the field. 5m = 5 minutes, 5d = 5 days
this->gen('when always set field1.value="hello" and field2.value="world"');
this->gen('when always set field1.concat=field2'); // field1: "helloworld"
$this->gen('when field.month=3 set field.skip="month"'); // we skip march.
$this->setArray('arrayname',['a','b','c']) // it sets an array with 3 values with the same chances.
$this->setArray('arrayname',['a'=>80,'b'=>10,'c'=>10]) // it sets an array with 3 values with the changes
// of a(80%),b(10%) and c(10%)
$this->gen('when always set name.value=randomarray("arrayname")');
$this->setArray('namearr',['john','bob','peter']);
$this->gen('when always set name.value=randomarray("namearr")'); // example: "john"
$this->setFormat('maleNameFormats',['{{namearr}} {{lastnamearr}}'=>80,'Dr.{{namearr}} {{lastnamearr}}'=>20]) //probability of 80% and 20%
$this->setArray('namearr',['john','bob','peter']);
$this->setArray('lastnamearr',['doe','smith','johnsons']);
$this->setFormat('maleNameFormats',['{{namearr}} {{lastnamearr}}','Dr.{{namearr}} {{lastnamearr}}']); // "john doe" or "dr. john doe"
$this->gen('when always set fullname.value=randomformat("nameFormat")');
$this->setArray('namearr',['john','bob','peter']);
$this->setArray('lastnamearr',['doe','smith','johnsons']);
$this->setFormat('maleNameFormats',['{{namearr}} {{lastnamearr}}','Dr.{{namearr}} {{lastnamearr}}']); // "john doe" or "dr. john doe"
$this->gen('when always set fullname.value=randomformat("nameFormat")'); // fullname could be "john doe", "dr. john doe", "bob doe" or others.
$this->gen('when always then text.value=randomtext("Lorem ipsum dolor","loremIpsumArray",1,4,30)')
$this->gen('when always then text.value=randommask("ulllll####000")');
$this->gen('when counter>100 then end()');
$this->gen('when counter>20 and counter<30 then omit()'); // values where counter are in between 20 and 30, are omited.
$this->gen('when always set ImageDestination.copyfilefrom=ImageSource.getvalue')
$db=new PdoOne("mysql","localhost","root","abc.123","chaosdb"); // connect to mysql
$db->open(); // it opens the connection
$chaos = new ChaosMachineOne();
$chaos->debugMode=true;
$chaos->table('SOMETABLE', 1000) // we will work with the table SOMETABLE
->setDb($db) // we indicates to our library to use the connection to the database
->field('fixedid','int','local',5) // we created a field (local), it will not be stored in the database
->field('idcustomer', 'int','identity', 0, 0, 1000) // we created a field (database), however it is identity so it will not be stored in the database
->field('name', 'string', 'database', '', 0, 45) // this field will be stored in the database
//...
->setInsert()
->run(); // finally we insert the new values (1000 values) : insert into SOMETABLE (name) values(...);
$chaos->table('SOMETABLE', 1000) // insert 1000 rows into SOMETABLE
$chaos->table('SOMETABLE', ['a','b','c'],'letter') // it will iterate between a,b,c, each letter could be obtained in the fields called letter
$chaos->table('SOMETABLE', 'ORIGINTABLE') // insert "n" rows into SOMETABLE. "n" depends in the number of rows of ORIGINTABLE.
$chaos->table('SOMETABLE', 'select * from ORIGINTABLE') // insert "n" rows into SOMETABLE. "n" depends in the number of rows of ORIGINTABLE.
$chaos->table('SOMETABLE', 'select col1,col2 from ORIGINTABLE','i_');
// it will generate the fields i_col1 and i_col2 with the values of the origin table, that you can read and process.
$this->update('table1','id',20,'col','hello world')
// update table1 set col='hello world' where id=20
$this->update('table1','id',20,'col','hello','col2','world','col3','hi')
// update table1 set col='hello',col2='world',col3='hi' where id=20
$this->gen('when field.value>10 then update("table1","id",field.value,"col","hello world")');
// if field>10 then update table1 set col='hello world' where id=field
$this->table('SOMETABLE', 1000);
$this->field('name', 'string', 'database', '', 0, 45) // this field will be stored in the database
// here we assign the value to name
$this->setInsert(); // insert into sometable(name) values(... ); we repeat it 1000 times.
$this->run();
->setArrayFromDBQuery('namemale','select first_name from sakila.actor')
->setArrayFromDBQuery('lastname','select last_name from sakila.actor where actor_id={{fixedid}}',[1])
$chaos=new ChaosMachineOne();
$chaos->setDb(new PdoOne('sqlsrv','localhost\sqlexpress','sa','password','testdb'));
$chaos->getDb()->logLevel=3; // for debug purpose
$chaos->getDb()->connect();
$chaos=new ChaosMachineOne();
$chaos->setDb(new PdoOne('mysql','localhost','root','password','testdb'));
$chaos->getDb()->logLevel=3; // for debug purpose
$chaos->getDb()->connect();
// $chaos is an instance of ChaosMachineOne and it must be connected to the database.
echo "<pre>";
echo $chaos->generateCode('table1'); // the table to generate the code.
// echo $chaos->generateCode('*'); // you also could generate code of all tables at once.
echo "</pre>";
$chaos->table('table1', 1000)
->field('id', 'int','identity', 0)
->field('number', 'int','database')
->isnullable(true)
->field('text', 'string','database','',0,50)
->isnullable(true)
->gen('when always set number.value=random(1,100,1,10,10)') // later you can change the values.
->gen('when always set text.value=random(0,50)')
->setInsert(true) // if you don't want to insert, then you could remove this line
->showTable(['id','number','text'],true) // if you don't want to show the values, then you could remove this line.
->run(true);
$chaos->table('table1', 'table1') // the first table is used for insert, since we are not inserting, then this value is not used. The second table is the table where the values will be read.
->field('text', 'string','database','',0,50)->isnullable(true)
->gen('when always set text.value="hello world"')
->gen('when always set update("table1","id",origin_id,"text",text.value)') // here whe update the same table. the prefix "origin_" is added automatically
//->setInsert(true) we don't want to insert.
->showTable(['text'],true)
->run(true);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.