<?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']) 
    // 
    ; 
 
     
 
 
 |