begin process at 2012 05 31 03:56:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Classes & Objets

 > 

Que pensez vous de mon code de génération de classes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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 .= "&nbsp;&nbsp;&nbsp;&nbsp;";
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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales