Vous êtes ici Codes PHP et MySQL > Classes > Générateur de classe

 

Générateur de classe

Ce script permet de générer une classe php à partir d'une table type MySql.
une fois généré, il suffit de modifier la fonction statique "creer()" en rempalcent les ?? par un champ et une valeur.
Ce code ne permet pas de générer une classe définitive, mais permet de générer une grande partie du code redondant des classes.
 
rgz
Code vu 7832 fois
Enregistré le 02 Sept 2008
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Générateur de classe
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Générateur de classe                                      */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts449-PHP.htm              */
/* Auteur         : rgz                                                       */
/* Date édition   : 02 Sept 2008                                              */
/*                                                                            */
/******************************************************************************/

header('Content-Type: text/plain');

/*CONF*/
define(__DB_HOST__'127.0.0.1');
define(__DB_USER__'root');
define(__DB_PASS__'');
define(__DB_DATABASE__'mysql');
define(__DB_TABLE__'user');


/*CONNEXION*/
$FCTCONNX mysql_connect(__DB_HOST__,__DB_USER__,__DB_PASS__) 
or die(("Impossible de se connecter a la base de donnees"));
mysql_select_db(__DB_DATABASE__) or die(("Impossible de trouver la base"));;

/*DESCRIPTION DB*/
$query="DESC ".__DB_TABLE__;
$result=mysql_query($query) or die(mysql_error());
while($val=mysql_fetch_array($result)){
  $res[]=strtolower($val[0]);
}

/*SELECT*/
foreach($res as $value$lst_val_query.="\r\n\t".$value.' AS '.$value.',';
$lst_val_query=substr($lst_val_query,0,-1)."\r\n";
$select="\t".'$select=\'SELECT '.$lst_val_query.
"\t".'FROM '.$table.''."\r\n".
"\t".'WHERE '.$res[0].'=\'.$id;'."\r\n".
"\t".'$result=mysql_query($select) or die(mysql_error());'."\r\n".
"\t".'if($val=mysql_fetch_array($result)){'."\r\n";
foreach($res as $value$select.="\t\t".'$this->'.$value.'=stripslashes($val[\''.$value.'\']);'."\r\n".'';
$select.="\t".'}else return false;'."\r\n";

/*INSERT*/
foreach($res as $id=>$value) 
  if($id>0) 
    $lst_update_query.="\r\n\t\t".$value.' = "\'.addslashes($this->'.$value.').\'",';
$lst_update_query=substr($lst_update_query,0,-1)."\r\n";
$INSERT='$insert=\'INSERT INTO '.$table."\r\n".'SET '.$lst_update_query.'\';'."\r\n".
'$result=mysql_query($insert) or die(mysql_error());'."\r\n\r\n";

/*UPDATE*/
$UPDATE="\t".'$update=\'UPDATE '.$table.''."\r\n\t\t".
'SET '.$lst_update_query."\t\t".
'WHERE '.$res[0].'=\'.$this->'.$res[0].';'."\r\n\t\t".
'$result=mysql_query($update) or die(mysql_error());'."\r\n\t";

/*VARS*/
foreach($res as $value) {
  $lstvars.="\r\n".'private $'.$value.';';
}
$lstrvars.="\r\n".'private $Must_Update=false;';

/*GET*/
foreach($res as $value) {
  $lstget.="\r\n".
  'public function get_'.$value.'(){'."\r\n\t".
  'return $this->'.$value.';'."\r\n".
    '}'."\r\n";
}

/*SET*/
foreach($res as $value) {
  $lstget.="\r\n".'public function set_'.$value.'($value){'."\r\n\t".
  '$this->'.$value.'=$value;'."\r\n\t".
  '$this->Must_Update=true;'."\r\n\t".
  'return true;'."\r\n".
  '}'."\r\n".'';
}


/*AFFICHAGE*/
echo '
class '.ucfirst($table).' {'."\r\n".
$lstvars.''."\r\n"."\r\n".'
public function __construct($id) {'."\r\n".
"\t".'if(empty($id)) return false;'."\r\n"."\r\n".
$select.'}'."\r\n"."\r\n".
'public function __destruct() {'."\r\n\t".
'if($this->Must_Update===true){'."\r\n\t".
$UPDATE.'}'."\r\n".'}'."\r\n"."\r\n".'

public static function creer(){'."\r\n\t".
'mysql_query("INSERT INTO '.$table.'" SET ?????=?????) or die(mysql_error());'."\r\n\t".
'$id = mysql_insert_id();'."\r\n\t".
'return new '.ucfirst($table).'($id);'."\r\n".'}'."\r\n".
$lstget."\r\n".
'}';


?>

 

Fonctions du code

: Envoie un en-tête HTTP - (PHP 4, PHP 5)
: Définit une constante - (PHP 4, PHP 5)
: Ouvre une connexion à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Alias de la fonction exit() - (PHP 4, PHP 5)
: Sélectionne une base de données MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: - (PHP 4, PHP 5, PECL mysql:1.0)
: Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: - (PHP 4, PHP 5, PECL mysql:1.0)
: Renvoie une chaîne en minuscules - (PHP 4, PHP 5)
: Retourne un segment de chaîne - (PHP 4, PHP 5)
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
: Met le premier caractère en majuscule - (PHP 4, PHP 5)
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 

Connexion

 
 

Classes

 
 

PHP

 
 
        Publicité