PHP Classes

File: exercise/milkco/Customers.php

Recommend this page to a friend!
  Packages of Jorge Castro   Chaos Machine One   exercise/milkco/Customers.php   Download  
File: exercise/milkco/Customers.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:
Date: 8 months ago
Size: 4,363 bytes
 

Contents

Class file image Download
<?php
use eftec\chaosmachineone\ChaosMachineOne;
use
Faker\Address;

include
'common.php';

$db->from('customers')->where('1=1')->delete();

$branches=$db->runRawQuery(
   
'select b.idbranch,b.idcity,c.idcountry from branches b
        inner join cities c on b.idcity=c.idcity order by idbranch'
,[],true);

foreach(
$branches as $branch) {

   
$idbranch=$branch['idbranch'];
   
$idcity=$branch['idcity'];
   
$idcountry=$branch['idcountry'];

   
$chaos = new ChaosMachineOne();

   
$empnu=$chaos->random(0,150,1,1,10,5); // from 0 to 150 customers per branch

   
$chaos->debugMode = true;
   
$chaos->setDb($db);

   
$chaos->table('Customers', $empnu)
        ->
setDb($db)
        ->
setFormat('nameformat', ['{{firstName}} {{lastName}}'])
        ->
setFormat('dirformat', Address::$streetAddressFormats)
        ->
setArray('buildingNumber', Address::$buildingNumber)
        ->
setArray('streetName', Address::$streetNames)
        ->
setArray('secondaryAddress', Address::$secondaryAddressFormats)

        ->
setFormat('companyformat', CompanyContainer::$formats)
        ->
setArray('nameCompany', CompanyContainer::$nameCompany)
        ->
setArray('companySuffix', CompanyContainer::$companySuffix)
        ->
setArray('emaildomain', PersonContainer::$domains)
        ->
setFormat('emailformat', [
           
'{{firstName}}.{{lastName}}@{{emaildomain}}',
           
'{{firstName}}_{{lastName}}@{{emaildomain}}',
           
'{{lastName}}{{firstName}}@{{emaildomain}}',
           
'{{lastName}}.{{firstName}}@{{emaildomain}}',
           
'{{firstName}}{{randomnumber}}@{{emaildomain}}',
           
'{{firstName}}.{{lastName}}{{randomnumber}}@{{emaildomain}}'
       
])
        ->
field('randomnumber', 'int', 'local')
        ->
setArray('sex_array',['female'=>68,'male'=>30,'na'=>2])
        ->
setArray('male_firstname_array',PersonContainer::$firstNameMale)
        ->
setArray('female_firstname_array',PersonContainer::$firstNameFemale)
        ->
setArray('lastname_array',PersonContainer::$lastName)
       
//->setArray('name_arr', array_merge(PersonContainer::$firstNameMale, PersonContainer::$firstNameFemale), 'fakebell')
        //->setArray('lastname_arr', PersonContainer::$lastName, 'fakebell')
       
->field('idCustomer', 'int', 'identity', 0)
       
//->field('fullName', 'string', 'database', '', 0, 200)
       
->field('address', 'string', 'database', '', 0, 200)
        ->
field('idCity', 'int', 'database')
        ->
field('email', 'string', 'database', '', 0, 45)
        ->
field('isBusiness', 'int', 'database')
        ->
field('password', 'string', 'database', '', 0, 64)
        ->
field('lastUpdate', 'datetime', 'database', DateTime::createFromFormat('Y-m-d h:i:s', '2010-01-01 00:00:00'))
        ->
field('firstName', 'string', 'database','',0,200)->allowNull()
        ->
field('lastName', 'string', 'database','',0,200)->allowNull()
        ->
field('age','int','database',0,0,80)->allowNull()
        ->
field('sex','string','database','na',0,20)->allowNull()
        ->
setArrayFromDBTable('array_idCity', 'Cities', ['idCity' => 'population'],'leftbias','idcountry='.$idcountry,' order by population')
        ->
gen('when always set sex.value=randomarray("sex_array")')
        ->
gen('when always set isBusiness.value=random(0,1,1,100,10,10)')
        ->
gen('when sex.value="male"
        set firstName.value=randomarray("male_firstname_array")
        else firstName.value=randomarray("female_firstname_array")'
)
        ->
gen('when always set randomnumber.value=random(1940,2020,1)')
        ->
gen('when always set age.value=random(15,80,1,20,40,60,20,10)')
        ->
gen('when always set lastName.value=randomarray("lastname_array")')
        ->
gen('when always set idCity.value=randomarray("array_idCity")')
        ->
gen('when always set address.value=randommaskformat("dirformat")')
        ->
gen('when always set email.value=randomformat("emailformat")')
        ->
gen('when isBusiness=1 set firstName.value=randomformat("companyformat") and lastName.value="" and sex.value="na"')
        ->
gen('when always set password.value=randommask("###-###-###")')
        ->
gen('when always set lastUpdate.speed=random(3600,86400)')
        ->
setInsert(false)
        ->
showTable(['idCustomer', 'firstName','lastName','sex', 'address', 'idCity', 'email', 'isBusiness', 'password', 'lastUpdate'],
           
true)->run(true);
}