1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| <?php
$user = "xxxxx";
$pwd = "xxxxx";
$pdo = new PDO('mysql:dbname=stagiaire;host=xxx.xxx.xxx.xxx;port=xxxxx', $user, $pwd);
$q = $pdo->query("sp_help");
//$q = $pdo->query("Select table_name from information_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema = 'xxxxx'"); // Test ne fonctionnant pas, trop de paramètres à retyper pour rien.
$tables = $q->fetchAll(PDO::FETCH_ASSOC);
$extends='Modele';
foreach($tables as $v){
if($v['Object_type'] == 'table'|| $v['Object_type'] == 'view' && $v['Owner'] == 'db'){//
$class = $v['Name'];
$s = "";
$sql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE Table_Name='".$class."'";
$q2 = $pdo->query($sql);
$fields = array_reverse($q2->fetchAll(PDO::FETCH_ASSOC));
$s .= "<?php\nclass ".ucfirst($class)." extends ".$extends." implements IProprietes{\n\tprotected ";//////////////////////debut class
foreach($fields as $v){$s .= "$".$v['COLUMN_NAME'].", ";}
$s = rtrim($s);
$s = rtrim($s, ",");
$s .= ";\n\n";
$s .= "\tpublic function __construct(";
foreach($fields as $v){$s .= "$".$v['COLUMN_NAME']."= null, ";}
$s = rtrim($s);
$s = rtrim($s, ",");
$s .= "){\n";///////////////////////////////////////////////////////////////////////////accolade construct
$s .= "\t\t";
$s .= "if(!(";
foreach($fields as $v)
{
$s .= "$".$v['COLUMN_NAME']." == null && ";
}
//enlever && et espace...............;
$s = rtrim($s);
$s = rtrim($s, "&&");
$s .= ") )";
$s .= "\n\t\t{";///////////////////////////////////////accolade if
foreach($fields as $v)
{
$s .= "\n\t\t\t"."$"."this->".$v['COLUMN_NAME']." = "."$".$v['COLUMN_NAME'].";";
}
$s .= "\n\t\t}";///////////////////////////////////////fin if
$s .= "\n\t}";////////////////////////////////////////////////////////////////////////////////////////fin construct
$s .= "
public function getProprietes(){
return get_object_vars($"."this);
}
}";////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////fin class
}
if(file_put_contents('./'.$class.'.class.php', $s)){
echo nl2br($s);
}
} |
Partager