begin process at 2012 05 27 19:49:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > DBOC - V3.1 [AJAX][PHP5]

DBOC - V3.1 [AJAX][PHP5]


 Information sur la source

Note :
Aucune note
Catégorie :Class et Objet ( POO ) Classé sous :générateur, classe, pdo, poo, mysql Niveau :Initié Date de création :21/04/2010 Date de mise à jour :03/11/2011 16:17:52 Vu / téléchargé :3 801 / 367

Auteur : Morphinof

Ecrire un message privé
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
/*
* Version 3.1
*/
La version 3.1 est en cours de developpement, voici la premiere version qui vous permet desormais de generer votre classe d'abstraction basee sur PDO pour les classes generees.

La 3.1 corrige aussi plusieurs bugs.

La source contient un zip de la 3.0, en cas de probleme vous pourrez toujours utiliser la 3.0
/*
* Descriptif
*/
DataBaseObjectCreator est un generateur de classe pour une base de donnee MySql.
(Version precedante : http://www.phpcs.com/codes/DBOC-AJAX-PHP5_46882.as px)
Je l'ai integralement recode car la V2 avait quelques defauts genant et j'ai rajoute beaucoup de petites chose comme l'initialisation par defaut des parametre du constructeur via le type du champ dans la base de donnee et encore d'autres petit trucs sympa.

J'ai aussi beaucoup simplifie l'interface qui est devenue minimaliste.

Ces classes sont des outils de bases permettant de manipuler les enregistrements d'une table entre autre charger un enregistrement, ajouter, mettre a jour, supprimer, serialiser au format XML ou JSon etc.
Une foi la classe generee il vous suffit de faire heriter votre classe et implementer toutes les fonctionnalites dans la classe fille afin de pouvoir regenerer votre classe mere si jamais la table change par exemple :)

Pour debugger vous aurez besoin de FirePhp ! C'est lui qui handle toutes les erreurs ou alors enlevez les lignes suivantes du fichier request_header.php :

ob_start();
FirePHP::getInstance(true)->registe rErrorHandler($throwErrorExceptions = true);
FirePHP::getInstance(true)->registerExcepti onHandler();
FirePHP::getInstance(true)->registerA ssertionHandler($convertAssertionErrorsToException s = true, $throwAssertionExceptions = false);

Si l'erreur est toujours obscure regardez le fichier de log de votre serveur :)


 Conclusion

Version 3.0 :
Le fichier DBA est une classe Singleton d'abstraction de base de donnee et toutes les classes generees se base dessus pour les requetes vous en aurez donc besoin si vous utilisez les classes generees

Version 3.1 :
Vous pouvez generer votre propre Abstration de base de donnee base sur PDO rendant ainsi l'utilisation du DBA facultative.
Correction de bugs

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

21 avril 2010 13:29:09 :
Precision sur la necessite de conserver DBA.php pour l'utilisation des classes
26 avril 2010 12:51:58 :
Mise a jour :) Correction de pleins de bugs lors de la génération des classes. Les options sont désormais prises en compte. Vous pouvez vous connecter a votre base depuis le formulaire plus besoin de modifier le DBA. Je n'ai pas encore teste si les fonctions marchent depuis leur réécriture
26 avril 2010 14:18:21 :
Mise a jour du screen
26 avril 2010 14:36:57 :
Correction de la fonction find
26 avril 2010 16:45:37 :
Erreur sur le nom de la table corrige dans les requetes sql
26 avril 2010 16:49:34 :
Ajout d'une classe generee pour l'exemple dans le dossier generatedClasses
28 avril 2010 11:09:16 :
Correction de la génération de la fonction load
28 avril 2010 11:18:06 :
Correction les requetes utilisent DBA::getArray() et plus DBA::getResult()
28 avril 2010 23:04:03 :
Les fonction __get et __set du DBA passent en public
28 avril 2010 23:12:38 :
Mise a jour de la classe generee donne en exemple dans le dossier generatedClasses
03 mai 2010 13:56:51 :
Correction de la generation de la fonction loadAll
03 mai 2010 14:11:01 :
Modification du test dans les getter et le setter, self deviens __CLASS__
04 mai 2010 00:09:37 :
Patchage du DBA fonction _getArray()
18 mai 2010 15:28:36 :
Correction de la generation de la fonction load qund plusieures clefs primaires
19 mai 2010 13:05:58 :
Correction de la generation de la fonction add sur un champ de type "text", oubli de quote fermante
06 janvier 2011 10:25:43 :
Mise a jour : la fonction load charge desormais les donnees du parent si la classe generee herite d'une autre classe.
06 janvier 2011 10:43:18 :
Mise a jour : La fonction toXML() appelle la fonction toXML() du parent parent en cas d'heritage
06 janvier 2011 14:58:53 :
Patch : le nom de la table dans la fonction load est desormais correct
06 janvier 2011 15:09:45 :
Patch : la fonction load subit une correction mineure
28 mars 2011 17:32:31 :
Mise en ligne de la version 3.1 : Possibilite de generer une classe d'Abstraction de base de donnee basee sur PDO ! Beaucoup de petits correctifs sur la generations des classes.
01 avril 2011 10:51:30 :
La classe d'abstration generee est desormais abstraite La fonction find est en cours de modification
01 avril 2011 14:04:30 :
Fonction toXML() mise a jour pour
03 novembre 2011 09:07:03 :
Correction de la generation du constructeur : utitlisation de get_class_vars a la place de get_defined_vars car sous wamp config par defaut get_defined_vars m'a sorti "this" dans le tableau permettant d'initialiser l'objet ce qui declenche du coup l'exception AttributesFault
03 novembre 2011 16:17:59 :
Correction de la generation de la classe d'abstraction basee sur PDO : la fonction lastInsertID renvoyai tout le temps 0 car on ne pouvais l'appeler qu'apres que la requete ai ete commit, la fonction renvois maintenant le bon ID

 Sources du même auteur

Source avec Zip CLIENT / SERVEUR : LES SOCKETS
CRÉER UN PARSEUR LL
Source avec Zip DESIGN PATTERNS - CREATEURS
Source avec Zip ABSTRACTHTML GENERATOR
Source avec Zip Source avec une capture DBOC 2.0 [AJAX][PHP5]

 Sources de la même categorie

Source avec Zip GÉNÉRATION AUTOMATIQUE DE FICHIER .CLASS.PHP EN FONCTION D'U... par ig3
CLASSE D'OBJET DE CRYPTAGE ET DÉCRYPTAGE DE CHAINES DE CARAC... par 8Tnerolf8
Source avec Zip MY.DEVIANTART API par inwebo
CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter

 Sources en rapport avec celle ci

CLASSE MYSQL UTILISANT LES FONCTIONS PDO par Vince66
Source avec Zip [PHP5.2] CLASSE PDO par hornetbzz
Source avec Zip CLASSE : GESTION D'UTILISATEURS par yoman64
Source avec Zip DBOC 1.6 [PHP5] par Morphinof
Source avec Zip ABDMYSQL V1.4.8 ACCÈS AUX BASES DE DONNÉES MYSQL. par psykocrash

Commentaires et avis

Commentaire de Morphinof le 21/04/2010 13:32:28

Il faut actuelement modifier les information de connection a la base dans inc/class/DBA.php

private $db_host = '127.0.0.1';
private $db_user = 'root';
private $db_pass = '';
private $db_name = 'mysql'; <- Votre base

C'est une Beta il manque encore pas mal de chose desole :)

Commentaire de Astalavista le 23/04/2010 14:32:37

Ha Ha Ha ...
Je rigole ... Pour de vrai ... Non pas a cause de ta source ... Enfaite, je suis venu sur ce site pour trouver une source dans le genre, et Paf ! je tombe dessus ...
Ta source est très bien en faite ... par contre (comme j'ai l'esprit critique), voila un problème sur le quelle je suis tombé :

class Inventaires
{
     # Attributes
     private $o_id;
     private $e_id;
     private $i_nb;
     private $i_use;
     private $i_pa;
     private $i_pv;
[.....]

!!     $sql .= ' AND '; # Function "load(primary_keys/first_class_attribute)"
       public static function load($o_id,$e_id)
       {
!!          $sql = 'SELECT * FROM Inventaires WHERE o_id="'.$o_id" AND e_id="'.$e_id.'";';

[.....]

En espérant contribuer à ta source ...
et de voir une release prochainement ...

PS : Je n'ai pas regardé ton code, mais uniquement le résultat ...

Commentaire de Morphinof le 23/04/2010 23:02:28

Aie le copier coller c'est mal ! :D
En fait il reste un endroit ou j'acrit dans la partie constructeur et non dans la partie fonctions :

ligne 242 : $this->class['contruct'] .= '$sql .= \' AND \';';

remplaces 'construct' par 'functions' et sa regle le souci :)

Commentaire de Astalavista le 24/04/2010 00:04:41

ligne 134: $this->class['functions'] .= '.\'" AND ';

Commentaire de Astalavista le 24/04/2010 01:10:03

ligne 265 : $this->class['functions'] .= '\'.$this->'.$field->__get('name').'.\'';

Bon maintenant j'arrête ....

Commentaire de Morphinof le 25/04/2010 12:39:30

Je vais corriger sa des que je peux ^^

Commentaire de Morphinof le 26/04/2010 12:53:03

Mise a jour de la source :)

Commentaire de genetApt151 le 02/05/2010 23:34:27

salut,
j'ai voulu tester ta source, j'ai trouvé une erreur sur la méthode générée loadAll à l'instruction $id = $result[$index][$article];
foreach ($result as $index => $article)
{
  $id = $result[$index][$article]; //Illegal offset type ...
  $arrayArticle[] = self::load($id);
}

print_r($article) -> Array ( [0] => 35 [id] => 35 ). j'ai l'ai donc remplacé par
$id = $article["id"];

Autre erreur dans DBA.php. les méthodes _getArray(),_getArray() ne sont pas correctes car elles revoient un tableau avec un ligne en trop par rapport à la base de données.

fonctionne pas : while ($result[sizeof($result)]= mysql_fetch_array($this->result)) ;
fonctionne : while($r = mysql_fetch_array($this->result)) $result[sizeof($result)] = $r;


Commentaire de Morphinof le 03/05/2010 09:23:45

Merci pour ton retour je vais corriger tout ca :)

Commentaire de genetApt151 le 03/05/2010 09:31:58

Et aussi j'ai eu un problème sur les méthodes magics __get et __set
->if (!property_exists(self, $attribute)). je pense que utiliser self dans une méthode non static ne fonctionne pas. il faudrai utiliser $this ou __CLASS__

Commentaire de Morphinof le 03/05/2010 13:59:33

Oui je la'i corrige aussi en remplacant self par __CLASS_, j'ai egalement corrige la generation de la fonction loadAll par contre pour la fonction getArray() du DBA c'est pas une erreur c'est juste que j'utilise un foreach pour traiter le retour :
foreach ($result as $obj) ou foreach ($result as $index => $obj)
puis dedant if (!$obj == false) pour la derniere ligne du tableau qui contient false :)

Commentaire de Seven le 12/11/2010 19:47:46

@Morphinof : ta source est très intéressante, elle me fait gagner beaucoup de temps :), mais j'ai un léger bug`:

Fatal error: Call to undefined method self::load()


la méthode load se trouve où ??? je ne la trouve pas !

je débute ds l'orienté objet !!

merci encore une fois pour ta source !

Commentaire de Seven le 12/11/2010 19:51:32

(juste précision : "self" ici représente le nom de ma table ! c pour la methode "find"

Commentaire de Seven le 12/11/2010 20:13:07

fallait que je coche sur load ! :) avant la generation de des class ! :)

Commentaire de Morphinof le 25/11/2010 00:11:46

Oui ^^ La fonction load est indispensable pour les fonction pre-implementees car elle y est appelee

Commentaire de Morphinof le 27/02/2011 17:04:42

Une grosse mise a jour en cours qui va incorporer la generation d'un abstration de base de donnees basee sur PDO ! Hourra enfin ! Et aussi plusieurs correctif sur la generation de certaines fonctions ! Bientot sur Php CS :)

Commentaire de Morphinof le 28/03/2011 17:34:07

Et voila la 3.1 ! En retard mais j'ai eu beaucoup trop de travail pour la finir plus vite.

Commentaire de lara31 le 06/10/2011 16:29:12

merci, cela m'a été utile.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Formulaire avec select et update de bdd mysql [ par arnold002 ] Bonjour &#224; tous,J'ai un formulaire qui contient 2 champs de type select : classe et annee.Je veux associer chaque classe &#224; chaque ann&#233;e passage de variables de form vers bdd mysql [ par arnold002 ] Bonjour,Mon probl&#232;me n'avance pas...Mon form contient 2 champs select for($i<FONT color=#008000 s Problème affichage BD multiples [ par ekipage2 ] Bonjour,j'ai plusieurs BD : eleve / matières / et exercicesLorque l'élèv se connecte, il peut afficher la liste des exercices correspondants à sa clas Recherche mysql [ par simon0000 ] salut tous le monde ,j'ai une table mysql nom&#233;&nbsp;ecole ou il ya Retour des données d'une classe MySQL [ par Jerem_ ] Salut, Depuis ce matin, j'asseye de coter une classe MySQL pour mon site. La classe marche tr&#232;s bien quand je fait une requete INSERT, etc .. M Bug dans une double liste [ par stu76 ] Bonjour, Malalam m'a donné des infos hier sur les doubles liste, et je le remercie car ca ma été super utile. J'ai presque résolu le prob sauf que je Problème de code [ par stu76 ] Bonjour tout le monde ,Voil&#224; je planche sur un programme scolaire et j'ai un gros prob, je travaille sur un programme qui utilise trois base de d Problème d'utilisation d'une classe MySQL du site [ par tataye ] Bonjour,Je suis en train de faire des tests avec la classe SQL  de FhX (source N°33135) et je rencontre actuellement quelques difficultés.J'ai fait un inclusion d'une classe provenant d'un autre fichier [ par lilippx ] salut, je me suis mis au php ce matin mais je bute sur un petit truc (dès le premier jour, ce n'est pas motivant...)je n'arrive pas à instancier un ob Probleme POO [ par cedriclomb ] Bonjour,Aujourd'hui au programme casse tete chinois ! :DVoila j'ai une classe B qui est une extends de Aun objet $b=new B;et ensuite $b-&gt;loadModule


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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,577 sec (3)

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