Génération automatique de fichier .class.php en fonction d'une table mysql

Description

ce script php permet de générer automatiquement un fichier .class.php en function d'une table de la base de données de mysql
  • fonctionnalité de la classe généréé

- constructeur (pour initialiser les champs)
- methode getinfo_$table()
- methode ajouter_$table()
- methode supprimer_$table()
- methode modifier_$table()

le code est composé de 3 fichiers:
- code_class.php (class de génération du fichier $table.class.php
- Connexion.class.php (class de connexion à la base de données)
- exe.bat (lancer cet exe.bat pour exécuter ce script en ligne de commande)

remarque pour utiliser ce code:
1- dans le fichier code_class.php modifier la ligne 17
genere_class("localite"); //remplacer ici localite par le nom de la table à générée

2- dans le fichier Connexion.class.php initialiser le constructeur de cette class par vos informations de connexion à votre base de données

3- dans le fichier exe.bat modifier cette ligne:
C:\wamp\bin\php\php5.3.8\php.exe code_class.php
suivant l'emplacement de votre php.exe dans mon cas j'utilise WAMP SERVER 2.2 avec la version 5.3.8 de PHP et mon php.exe se trouve à l'emplacement C:\wamp\bin\php\php5.3.8\

en bref ce petit code permet d'aller vite dans l'écriture des fichiers .class.php par rapport à une table mysql
les fonctions générées peuvent modifiées suivant vos fonctionalités.

merci

Source / Exemple :


<?php
     /***************************************************************************************************************

  • *
  • génération automatique de fichiers.class *
  • houndegnonm@gmail.com *
  • *
                                                                                                                                                                                                                              • /
include_once("Connexion.class.php"); //remplacer ici localite par le nom de la table à générée //######################################################### //######################################################### genere_class("localite"); //######################################################### //######################################################### function genere_class($table_name){ //connexion à la base de données $adminConnexion= new Connexion(); $i=$adminConnexion->connect_server(); $i1=$adminConnexion->connect_db($i); if($i1){ //initialisation variable qui stock le contenu du fichier à générer $ligne=""; //liste des colonnes des colonnes d'une table $req_champ = "SHOW COLUMNS FROM $table_name"; $result_champ = mysql_query($req_champ) or die ("Erreur lors de la recuperation du nombre d'entrees"); $nbre_champ= mysql_num_rows($result_champ); $c=0; $champ=array(); while($row= mysql_fetch_object($result_champ)){ $champ[$c]=$row->Field; $c++; } //génération du fichier $table.class.php $file_class= fopen($table_name.".class.php","w"); //début de généation $ligne.="<?php \n"; $ligne.="class $table_name{\n\n"; //génération des attributs de la classe for($c=0;$c<count($champ);$c++) $ligne.="\tpublic $".$champ[$c].";\n"; //génération du contructeur de la classe $ligne.="\n\tpublic function $table_name($". implode(",$",$champ) ."){ \n"; for($c=0;$c<count($champ);$c++) $ligne.="\t\t$"."this->".$champ[$c]."=$".$champ[$c].";\n"; $ligne.="\t} \n\n"; /*function pour obternir les informations de $table_name en fonction de l'id*/ //function getinfo $ligne.="\t /*function pour obternir les informations de $table_name en fonction de l'id*/ \n"; $ligne.="\tpublic function getinfo_$table_name($"."id){ \n"; $ligne.="\t\t$"."sql=\"select * from $table_name where ".$champ[0]."='$"."this->".$champ[0]."'\"; \n"; $ligne.="\t\t$"."result=mysql_query($"."sql,$"."id);\n"; $ligne.="\t\treturn $"."result;\n"; $ligne.="\t}\n\n"; $ligne.="\t /*function pour ajouter un enregistrement dans la table $table_name */\n"; /*function pour ajouter un enregistrement dans la table $table_name */ //function add $ligne.="\tpublic function ajouter_$table_name($"."id){ \n"; $ligne.="\t\t$"."sql=\"insert into $table_name (".implode(",",$champ).") VALUES ('$"."this->".implode("','$"."this->",$champ)."');\"; \n"; $ligne.="\t\t$"."result=mysql_query($"."sql,$"."id);\n"; $ligne.="\t\tif($"."result){\n"; $ligne.="\t\t\treturn true;\n"; $ligne.="\t\t}else return false;\n"; $ligne.="\t}\n\n"; $ligne.="\t /*squellette function pour modifier un enregistrement dans la table $table_name */\n"; /*squellette de function pour modifier un enregistrement dans la table $table_name */ //function update $ligne.="\tpublic function modifier_$table_name($"."id){ \n"; $ligne.="\t\t$"."sql=\"\"; \n"; $ligne.="\t\t$"."result=mysql_query($"."sql,$"."id);\n"; $ligne.="\t\tif($"."result){\n"; $ligne.="\t\t\treturn true;\n"; $ligne.="\t\t}else return false;\n"; $ligne.="\t}\n\n"; $ligne.="\t /*function pour supprimer un enregistrement dans la table $table_name */\n"; /*function pour supprimer un enregistrement dans la table $table_name */ //function delete $ligne.="\tpublic function supprimer_$table_name($"."id){ \n"; $ligne.="\t\t$"."sql=\"delete from $table_name where ".$champ[0]."='$"."this->".$champ[0]."'\"; \n"; $ligne.="\t\t$"."result=mysql_query($"."sql,$"."id);\n"; $ligne.="\t\tif($"."result){\n"; $ligne.="\t\t\treturn true;\n"; $ligne.="\t\t}else return false;\n"; $ligne.="\t}\n\n"; //fin $ligne.="}"; fwrite($file_class,$ligne); } } ?>

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.