<?php
use eftec\chaosmachineone\ChaosMachineOne;
use eftec\PdoOne;
use eftec\minilang\MiniLang;
include "../vendor/autoload.php";
include "../lib/en_US/Person.php";
$chaos=new ChaosMachineOne();
$files=$chaos->arrayFromFolder('./machines/','jpg');
$localfolder='./machines/';
$destinationfolder='./databasefile/';
$filesWithoutExtension=$chaos->arrayFromFolder($localfolder,'jpg',false);
$sql="CREATE TABLE `products` (
`IdProduct` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(50) NOT NULL DEFAULT '',
`Price` int(11) NOT NULL DEFAULT '0',
`Image` varchar(50) NOT NULL DEFAULT '',
`Description` varchar(2000) NOT NULL DEFAULT '',
`Weight` int(11) NOT NULL DEFAULT '0',
`IdCategory` int(11) NOT NULL,
PRIMARY KEY (`IdProduct`)
) ENGINE=InnoDB";
$db=new PdoOne("mysql","localhost","root","abc.123","chicago");
$db->open();
try {
$db->runRawQuery($sql);
} catch(Exception $exception) {
// table already created
}
$numFiles=count($files);
echo "<h1>Creating $numFiles products</h1>";
// this examples works with files. It does the next tasks.
// * it fills the database with information based on the files (products)
// * it copies the files from the source /machines to destination /databasefile changing the filename
$numFiles=3;
$chaos->table('products',$numFiles) // the table products must exist!.
->setDb($db)
->field('IdProduct','int', 'identity', 0)
->field('Name', 'string', 'database', '', 0, 50)
->field('Price', 'int', 'database', 0, 0, 45)
->field('Image', 'string', 'database', '') // it is store on the db.
->field('ImageSource', 'string', 'variable', '') // it is the local file (it is not store on the db)
->field('ImageDestination', 'string', 'variable', '') // it is the destination file. (it is not store on the db)
->field('Description', 'string', 'database', '', 0, 100)
->field('Weight', 'int', 'database', 0)
->field('IdCategory', 'int', 'database', 0)
->setArray('productimages', $files)
->setArray('productimagescode', $filesWithoutExtension)
->setArray('productnames', ['Augers','Concrete Tools','Compactors','Demolition Tools','Drain Cleaners','Plumbing Tools','Floor Cleaners','Floor Care','Refinishers'])
->setArray('loremIpsum',PersonContainer::$loremIpsum)
->setFormat('productformat', ['{{productnames}} {{productimagescode}}', '{{productnames}}'])
->setFormat('imageformat', ['{{IdProduct}}_{{productimages}}'])
->gen('when always set IdProduct.add=1') // it increases 1 by one.
->gen('when always set Name.value=randommask("? Model #####-00","productformat")')
->gen('when always set Price.value=random(10,100)')
->gen('when always set Image.value=randomformat("imageformat")')
->gen('when always set ImageSource.value=$localfolder + arrayindex("productimages")')
->gen('when always set ImageDestination.value=$destinationfolder + Image.getvalue')
->gen('when always set ImageDestination.copyfilefrom=ImageSource.getvalue')
//->gen('when always set Image.value=IdProduct.getvalue and Image.add="_" and Image.add=arrayindex("productimages")') // it's the same than randomformat("imageformat")
->gen('when always then Description.value=randomtext("Lorem ipsum dolor","loremIpsum",1,4,30)')
->gen('when always set Weight.value=random(2,10)')
->gen('when always set IdCategory.value=random(1,4)')
->insert(true)
->show(['IdProduct','Name','Price','Image','ImageSource','ImageDestination','Description','Weight','IdCategory'])
//
;
|