Accueil > Forum > > > > Que pensez vous de mon code de génération de classes
Que pensez vous de mon code de génération de classes
jeudi 23 juillet 2009 à 20:24:22 |
Que pensez vous de mon code de génération de classes

menge51000
|
Bonjour,
Après plusieurs créations de sites Internet, j'ai décidé de créer un générateur de classes approprié à ma conception. De ce fait j'aimerais avoir votre avis afin de faire évoluer mon code.
Code PHP :
<?php
function __autoload($class_name){
require_once("./$class_name.class.php");
}
function strFormat($str){
return ucfirst(strtolower($str));
}
function tab($n){
$str = "";
for($i=0;$i<$n;$i++)
$str .= " ";
return $str;
}
$tableName = "RUBRIQUE";
$primaryKey = "???";
$fields = array();
$stmt = myPDO::get()->query("SHOW COLUMNS FROM $tableName");
$res = $stmt->fetchAll();
foreach($res as $field){
if(isset($field['Key']) && $field['Key'] == 'PRI')
$primaryKey = $field['Field'];
$fields[] = $field['Field'];
}
/* CLASS */
echo "class ".strFormat($tableName)."{<br>";
/* PARAMETERS */
foreach($fields as $field)
echo tab(1)."private \$".$field.";<br>";
echo "<br>";
/* CONSTRUCT */
echo tab(1)."function __construct(\$_id){<br>";
echo tab(2)."\$stmt = myPDO::get()->query(\"SELECT * FROM $tableName WHERE $primaryKey = \$_id\");<br>";
echo tab(2)."\$res = \$stmt->fetch(PDO::FETCH_ASSOC);<br>";
foreach($fields as $field)
echo tab(2)."\$this->$field = \$res[\"$field\"];<br>";
echo tab(1)."}<br><br>";
/* ADD */
$params = "";
$params1 = "";
$params2 = "";
foreach($fields as $field)
if($field != $primaryKey){
$params .= "\$_".strtolower($field).", ";
$params1 .= "$field, ";
$params2 .= "?, ";
}
$params = substr($params, 0, strlen($params)-2);
$params1 = substr($params1, 0, strlen($params1)-2);
$params2 = substr($params2, 0, strlen($params2)-2);
echo tab(1)."public static function add($params){<br>";
echo tab(2)."\$stmt = myPDO::get()->prepare(\"INSERT INTO $tableName($params1) VALUES ($params2)\");<br>";
echo tab(2)."\$stmt->execute(array($params));<br>";
echo tab(2)."return new ".strFormat($tableName)."(myPDO::get()->lastInsertId(\"$tableName\"));<br>";
echo tab(1)."}<br><br>";
/* DELETE */
echo tab(1)."public static function delete(\$_id){<br>";
echo tab(2)."myPDO::get()->query(\"DELETE FROM $tableName WHERE $primaryKey = \".\$this->$primaryKey);<br>";
echo tab(1)."}<br><br>";
/* UPDATE */
$params = "";
$params1 = "";
foreach($fields as $field)
if($field != $primaryKey){
$params .= "\$_".strtolower($field).", ";
$params1 .= "$field=?, ";
}
$params = substr($params, 0, strlen($params)-2);
$params1 = substr($params1, 0, strlen($params1)-2);
echo tab(1)."public function update($params){<br>";
echo tab(2)."\$stmt = myPDO::get()->prepare(\"UPDATE RUBRIQUE SET $params1 WHERE $primaryKey=?\");<br>";
echo tab(2)."\$stmt->execute(array($params, \$this->$primaryKey));<br>";
foreach($fields as $field)
if($field != $primaryKey)
echo tab(2)."\$this->$field = \$_".strtolower($field).";<br>";
echo tab(1)."}<br><br>";
/* GETTERS */
foreach($fields as $field){
echo tab(1)."public function get".strFormat($field)."(){<br>";
echo tab(2)."return \$this->$field;<br>";
echo tab(1)."}<br><br>";
}
/* SETTERS */
foreach($fields as $field){
if($field != $primaryKey){
echo tab(1)."public function set".strFormat($field)."(\$_value){<br>";
echo tab(2)."myPDO::get()->query(\"UPDATE $tableName SET $field = \$_value WHERE $primaryKey = \".\$this->$primaryKey);<br>";
echo tab(2)."\$this->$field = \$_value;<br>";
echo tab(1)."}<br><br>";
}
}
echo "}";
?>
Merci d'avance!
|
|
vendredi 24 juillet 2009 à 12:56:54 |
Re : Que pensez vous de mon code de génération de classes

syndrael
|
Perso je te conseille de te tourner vers des solutions comme Propel ou Doctrine.. Toujours utiliser les bonnes idées des autres.. surtout s'il se font des noeuds à ta place.. LOL !!
|
|
samedi 25 juillet 2009 à 11:01:16 |
Re : Que pensez vous de mon code de génération de classes

menge51000
|
Je connaissais pas ça! Cela ma l'air sympa à utiliser! Et puis c'est vrai qu'on ne vas pas réinventer la roue non plus! lol! Merci pour ce petit aiguillage!
|
|
Cette discussion est classée dans : tab, echo, params, field, primarykey
Répondre à ce message
Sujets en rapport avec ce message
Tableau dans des variables de session [ par D3tR4k3 ]
Voici mon probleme :Je recupere les valeurs d'une ckeck box dans un tableau, et je souhaite mettre ce tableau dans une variable de session.Mais mon c
Problème de requete Select puis insert [ par Maiku ]
BonjourAlors je vous explique ce que ma page fait et ce que j'essaie de faire puis le problème : - J'ai une base de donnée mysql qui contient 3 tables
gestion de news en php [ par yunie77 ]
bonjour à tous,je crée un site sur la gestion de nouvelles d'un site internet. j'aimerai limiter le nombre d'affichage de news (5 par page) et pouvoir
pagination de news en php [ par yunie77 ]
bonsoir à tous, j'ai un problème sur ma pagination. je veux mettre seulement 5 news par page, mais toutes les news apparaissent a chaque fois. si je
passage d'un tableau dans l'url [ par jbardet ]
Bonjour,Je voudrais passer un tablo en parametre de mon url. J'ai trouvé des fonctions pour transformer mon tablo en string mais je dois encore faire
tableau comme calendrier!! [ par titigrou ]
kikou a tous!!!pffff j'ai un énorme problème et urgent a règler mais je n'arrive pas a voir l'erreur!!!!au secours!!!!j'ai une liste déroulante semain
sondage [ par 01cod10 ]
Salut à tous,j'ai trouvé un script pour la réalisation d'un sondage sur mon site. J'aimerai modifié l'affichage des résultats en graphique. pouvez vou
encodage de flux rss [ par zatt ]
Bonjour, Je souhaite utiliser un agrégateur rss sur une page php, qui affiche le titre de l'article, la date du post, la description, et un lien ver
stoker un résultat dans un menu déroulant [ par marc660 ]
Bonjour, Je voudrais savoir comment stoker le résultat de ce script dans un menu déroulant (liste). Bien sur il y a plusieurs clients donc si c'est po
Construire un tableau associatif avec un fichier externe [ par phsautreau ]
Bonsoir, Voilaà j'ai un fichier texte externe nommé identif_ens.txt et contenant les login et mots de passe permettant de se logguer à une page, ce fi
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|