Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DBOC 2.0 [AJAX][PHP5]


Information sur la source

Catégorie :Class et Objet ( POO ) Classé sous : generateur, classe, ajax, jquery, poo Niveau : Initié Date de création : 04/06/2008 Date de mise à jour : 25/06/2008 10:49:51 Vu / téléchargé: 3 948 / 150

Note :
Aucune note

Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
ATTENTION !!!

--> Ce projet est optimisé pour fonctionner sous FireFox !!!
--> La source ne contient pas le framework JQuery !!!

Si vous préférez l'installer vous même il vous faudra :
1. Télécharger le framework sur le site officiel (J'ai utilisé jquery-1.2.4b.js)
2. Télécharger l'extention de ce framework : JQuery UI sur le site officiel de JQuery UI
3. Copier le framework dans le dossier de JQuery UI
Et la c'est la que sa devient subtil, JQuery UI utilisant plein de petit fichiers différents pour faire du drag and drop et bien d'autre choses encore mais il vous faudra les inclure dans votre page, aussi un des fichier du framework est la pour sa (jquery.ui-all-1.5b4) sauf qu'il bug ! Hé oui il vous inclu mal les fichiers de l'extention, du coup il faut faire un téléchargment personnalisé de l'extention (toujours sur le site offciel dnas la section appropriée) où l'on spécifie les modules que l'on veus utiliser et ce coup ci ce fichier est généré correctement (sa à donné sa pour moi en sélectionnant toutes les option de JQuery : jquery-ui-all-1.5b3.js)
Une fois que vous avez JQuery UI et JQuery il ne vous reste plus qu'a vérifier que ces 2 fichiers sont bien inclus dans la page index de la manière suivante :
<script src="lib/jquery.ui/jquery-1.2.4b.js" type="text/javascript"></script>
<script src="lib/jquery.ui/jquery-ui-all-1.5b3.js" type="text/javascript"></script>

Ou sinon je vous conseille fortement de télécharger le package à l'adresse ci-dessous mentionnée !!

http://sd-1.archive-host.com/membres/up/35381551644790854/DBOC-20.rar

Voila :)

Voici la version ajax du DBOC (Data Base Objet Creator).

Ce n'est pas qu'une mise à jour de mon ancien script,
http://www.phpcs.com/codes/GENERATEUR-CLASSES-LIES-BASE-DONNEE-MYSQL-PHP5_43290.aspx
étant donné le changement total de la source je ne met pas à jour l'ancienne, déjà parce que certains préfèreront peu être la 1.6 mais aussi parce que le changement est trop conséquent et comme tout n'est pas forcément intuitif et qu'une vidéo est plus explicative qu'une mauvaise explication, rendez vous là :

http://sd-1.archive-host.com/membres/up/35381551644790854/DBOC2.swf

Pour un peu plus de détails sur ce projet je vous invite à regarder la version 1.6 ^^
 

Source

  • Démo en ligne :
  • http://sd-1.archive-host.com/membres/up/35381551644790854/DBOC2.swf
  • Archive du code :
  • http://sd-1.archive-host.com/membres/up/35381551644790854/DBOC-20.rar
Démo en ligne :
http://sd-1.archive-host.com/membres/up/35381551644790854/DBOC2.swf

Archive du code :
http://sd-1.archive-host.com/membres/up/35381551644790854/DBOC-20.rar

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

04 juin 2008 21:13:39 :
Ajout du code source
04 juin 2008 21:15:57 :
Modification du descriptif
04 juin 2008 21:19:19 :
Mise à jour mineure
05 juin 2008 00:23:48 :
Oubli de ma part, supression de classes générées de test dans le fichiers myClasses ^^
05 juin 2008 00:43:28 :
Mise à jour du descriptif
25 juin 2008 10:49:52 :
Correction mineure de la classe ClassWriter lors de la génération de classe avec héritage

Commentaires et avis

signaler à un administrateur
Commentaire de malalam le 04/06/2008 23:52:29 administrateur CS

Hello,
j'ai pas suivié tes liens : mon 1er réglexe a été de lire ton descriptif...trop succint et surtout pas du tout descriptif...puis de regarder l'archive...trop de fichiers. Alors ma question avant d'aller plus loin : il fait quoi, ton code???
(Ok, je suis admin CS...donc ma question n'est pas innocente : rien n'indique à quoi sert ta source, pas même ton titre si e n'est qu'il suggère, si on n'est pas un débutant, vaguement de la DB sans en être vraiment sûr...bref, t'es pas très prolyxe! Et là, il est minuit, j'irai pas fouiller ton code, le titre a juste l'air sympa, l'orthographe du descriptif aussi, ça fait sérieux...mais j'ai foutrement aucune idée de ce que fait ton code. Moi, j'irai voire demain...mais tu pourrais quand même faire un effort!)

signaler à un administrateur
Commentaire de Morphinof le 05/06/2008 00:18:09

Hello Malalam ;)

Si je n'ai pas beaucoup d?taill? ma description c'est que j'avais d?j? post? une source dans le m?me sens (DBOC 1.6), sauf que la y'a eu une nette ?volution du script vers quelque chose de bien mieu structur? tant au niveau interface que la structure m?me du code.
J'ai ?galement rajout? des ?volution comme la gestion de l'h?ritage et la gestion des clef primaires dans la fonction load() qui charge une ligne de table dans un objet ? partir de ces derni?res et d'autre petites chose du m?me style.

Alors en pratique que fait mon code ? ^^

En fait ce que je viens de poster est l'?volution d'une de ma pr?c?dente source dont le lien dans le descriptif.
En gros l'id?e de d?part c'?tait de recr?er ce que l'on ? en java quand on cr?er une nouvelle classe : le squellette mais en un peu plus ?volu?.

Ici le squelette des classes se base sur des tables d'une base mysql.
Concr?tement, on se connecte ? une base mysql et l'on va g?n?rer le code d'une classe permettant de manipuler des enregistrements que ces tables contiennent, se sont des classes "images" des tables, chaque champ devient un attribut.
Et avec cel? on peu rajouter quelques petites fonctions pr?-impl?ment?es qui vont nous aider ? ajouter/mettre ? jour/supprimer/charger/charger tout,avoir notre enregistrement en xml etc. via notre objet.

Bien entendu cette source ? ses limites, par exemple je n'ai pas utilis? pdo dans mes fonctions pr?-impl?ment? mais ma propre classe d'abstraction qui est tr?s basique et on pourrai discuter de certain de mes choix de programation, mais on peu quand m?me se servir de cette source sans choisir d'impl?menter les fonctions que j'ai ajout?, l'avantage ?tant le gain de temps et le formalisme du code :)

Voila j'esp?re avoir bien r?sum?, mais tu as raison pour quelqu'un qui ne connait pas la source pr?c?dante c'est assez dur de comprednre que par le titre le but de la source ^^

signaler à un administrateur
Commentaire de coucou747 le 05/06/2008 04:23:35

salut

ta propre classe d'asbtraction mysql n'abstrait que les connections et requetes, mais pas les extractions de resultats...
conclusion, tu obtiens l'avantage d'avoir un singleton (ou multiton, vu que tu peux __clone), et tu obtiens l'avantage pour la gestion d'Exceptions, mais tu perds un avantage non negligeable : tu es toujours coince sur mysql...

cf while(mysql_fetch_row($result_sql)){
fichier : http://files.codes-sources.com/fichier.aspx?id=46882&f=class%2fClassWriter.php ligne 131

sinon, j'ai pas regarde en detail ton code, mais j'ai lu quelque part que ton code "limitait" les classes generees a TON abstraction sql... pour changer ca, j'imagine qu'il faut modifier le fichier :
http://files.codes-sources.com/fichier.aspx?id=46882&f=class%2fClassWriter.php

t'as une solution propre pour remedier a ca : un MVC : tu fais une interface : "vuesClassSql" et tu fais une interface pour PDO, une pour ta classe d'abstraction, etc... et dans le menu de generation des classes, tu mets un combobox (<select>) qui permette de choisir la vue.

en tout cas, cette source m'a l'air TRES interessante. tu peux peut-etre pousser en faisant deux classes par table : une pour les elements de la table, et une pour une collection de ces elements.

Bref, bonne continuation.

signaler à un administrateur
Commentaire de Morphinof le 05/06/2008 09:19:48

Merci Coucou747 ;)

En effet, pour ce qui est des fonctions pré-implémentées elles sont limités à ce singleton, j'ai commencer à regarder un peu ce qui avait été fait en matière d'abstraction mais je pense que le mieu serait ta solution avec pdo je vais commencer à me plonger dans son fonctionnement.

signaler à un administrateur
Commentaire de codefalse le 05/06/2008 13:37:21 administrateur CS

Tu fait du bon travail je trouve, mais j'aurai quand meme une remarque.
J'ai pas parcourus tout ton code (j'ai pas le temps l?, j'essayerai plus tard), mais en rebondissant sur ce que dit Coucou, tu devrait utiliser PDO plutot que les fonctions mysql_*.
C'est plus performant et ca t'?vite d'utiliser une couche d'abstraction qui ne ferait que ralentir ton code. Comme PDO est inclus de base dans php > 5 (5.1 si je ne me trompe pas), pourquoi s'en priver ? Et vu que ton code est php5, c'est tout bon ! :)

Je regarderai plus en d?tails ce soir.

signaler à un administrateur
Commentaire de Morphinof le 05/06/2008 14:24:12

Merci CodeFalse ;)
Je trouve l'idée de Coucou747 excellente je suis en train de me documenter sur pdo pour implémenter tout sa dans la prochaine mise à jour.
Mais je sais pas trop par où commencer ni tout ce que je doit gérer dans cette classe d'abstraction ^^

signaler à un administrateur
Commentaire de stailer le 05/06/2008 18:08:39

CodeFalse : tu devrais utiliser PDO plutot que les fonctions mysql_*.
C'est plus performant et ca t'?vite d'utiliser une couche d'abstraction
-----------

non, mysqli tout particulièrement est plus performant que pdo. pdo a davantages de fonctionnalités mais il est plus performant dans le cas de requêtes paramétrées.

signaler à un administrateur
Commentaire de stailer le 05/06/2008 18:11:37

J'allais oublier... PDO permet de se passer d'une abstraction EN PARTIE. En réalité il faudrait que le driver lui-même soit une abstraction (voir Doctrine je crois ou plus sûrement ADODBPHP). ceci afin de switcher entre MySQL et SQLServer par exemple, mais aussi de switcher entre mysqli/ pdo  ou différents drivers SQL Server développés par des entreprises tierces (SQL Server pour rester dans l'exemple, j'aurais pu dire Oracle).

signaler à un administrateur
Commentaire de codefalse le 05/06/2008 18:24:52 administrateur CS

En fait quand je parle de performance (dans ce cas l?), je fait r?f?rence au fait que pdo, ?tant cod? en C, est plus performant que d'impl?menter soi-m?me une abstraction sgbd en php. Maintenant c'est vrai qu'on est pas ? de l'abstraction pure et dure.
Apres c'est vrai qu'il vaut mieux ne pas utiliser pdo directement mais faire des classes qui vont utiliser pdo pour les requetes et qui seront sp?cifiques au type de sgbd. (style MysqlRequest avec un constructeur qui prends en param une instance de pdo, et OracleRequest, le tout afin d'effectuer le traitement correct en appelant la m?thode sp?cifique de l'instance en relation avec la sgbd).

Perso, apr?s avoir gout? a PDO, j'aurai du mal ? me tourner sur des application style ADODBPHP sachant que c'est des libraries ? inclures qui ne sont pas forc?ment sur le serveur, alors que PDO est (maintenant) impl?ment? de base. De plus quand on voit ce que pdo permet, au travers du Zend Framework, je pense qu'il faut vraiment pousser la b?te pour ?tre bloqu? avec Pdo :)

Ce qui manque ? mon gout pour Pdo, c'est un ensemble de classe qui portent le m?me nom que les classes li?es ? Pdo et qui permettent d'utiliser pdo dans le cas d'un serveur qui ne l'impl?mente pas (style serveur Php4 ou configuration de php5 exotique)

signaler à un administrateur
Commentaire de codefalse le 05/06/2008 18:38:44 administrateur CS

Bon, j'ai jet? un ptit coup d'oeil ? ta source, quelques remarques :
Pour ce qui est de la base de donn?e, je te conseille de passer les param?tres dans un tableau sous la forme array('host'=>'localhost', 'login'=>'root', etc..); et de le placer dans le constructeur en param?tre optionnel et dans une autre fonction en parametre obligatoire (genre setProperties). Mais bon comme tu va tout refaire avec pdo ;)

En Php5 tu as les m?thodes magiques tel que __get et __set qui te permettent de r?cup?rer des valeurs sans forc?ment faire des getters et des setters (tel que get_db_host(), etc).
Pour tes exceptions, tu devrait peut-etre faire une classe interm?diaire, style DBOCException et que tes classes actuelles ?tendent, car l? en l'occurrence, tu fait de la redondance de code.

Pour les ?l?ments de la partie ajax_request, ce qui serait beau, c'est d'utiliser la classe fournie par Php pour les Xml, et de g?n?rer ton Xml ? partir de cela. Mais bon, jdit ca et j'en fait pas autant ;)

Euh, voila :)

signaler à un administrateur
Commentaire de Morphinof le 05/06/2008 18:44:35

Toutes les classes générées par la sources sont écrite avec les méthodes magique __get et __set et pour la gestion des exceptions je vais la remanier totalement en même temps que je changerai l'abstraction de la base de donnée c'est promi ;)
Pour le xml j'utilise le parser de php pour valider le xml généré mais c'est vrai que je pourrai aussi l'utiliser pour générer mon xml ^^

signaler à un administrateur
Commentaire de coucou747 le 05/06/2008 18:53:56

perso, le __get et __set, je n'en vois l'utilite que pour les agregations et proxys... enfin je trouve ca hyper moche comme methode compare aux poperties qu'on trouve en freepascal ou en C#...

signaler à un administrateur
Commentaire de codefalse le 05/06/2008 18:56:18 administrateur CS

D?sol? Coucou, je ne connais pas les properties :/

signaler à un administrateur
Commentaire de stailer le 05/09/2008 11:57:17

freepascal, C# ou tout simplement en java ;)

signaler à un administrateur
Commentaire de coucou747 le 05/09/2008 12:07:39

stailer, non on a pas ca en java.

signaler à un administrateur
Commentaire de nicosalto le 11/11/2008 14:46:16

Bonjour,
Je trouve ce code tres interessant et particulierement util.
Toutefois je n'arrive pas a utiliser la class generee par le script...
Voici mon code dans une page de mon site :
---------------------------------------------------------------------------------------------
include 'class/DataBaseManager.php';
include 'myClasses/tutos_posts.php';

$test = new Tutos_posts($_POSTS_ID, $_POSTS_AUTHOR, $_POSTS_TITLE, $_POSTS_TEXT, $_POSTS_CATEGORY, $_POSTS_PASSWORD, $_POSTS_STATUS, $_POSTS_DATE, $_POSTS_MODIFIED);
$test->load('1');

print_r($test);
---------------------------------------------------------------------------------------------
voila c'est tout simple mais le script ne me retourne pas les infos de ma base de donnee. Il me retourne le nom de mes champs inclus dans mes variables $_POSTS_AUTHOR ...
Le print_r m'affiche:

Tutos_posts Object ( [posts_id:private] => posts_id [posts_author:private] => posts_author [posts_title:private] => posts_title [posts_text:private] => posts_text [posts_category:private] => posts_category [posts_pass:private] => posts_pass [posts_status:private] => posts_status [posts_date:private] => posts_date [posts_modified:private] => posts_modified )

Si quelqu'un peux eclairer ma lanterne ?

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

[POO] Une classe dans une classe [ par Mrreivax ] Bonsoir.Et bien voila. J'ai créé une classe de gestion des images.J'ai par la suité créé une autre classe de gestion de banières.Mais, cette dernière 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 Problème d'accents PHP/AJAX [ par riktus57 ] Bonjour à tous,Mon problème en quelques mots :J'essaye de mettre à jour ma base de données avec une commande AJAX, mais les accents sont remplacés par Classe abstraite DataBase [ par codefalse ] Hello les gens :)J'ai développé un petit ensembles de classes en php 5, et j'aimerai votre avis :)Je ne vous le cacherai pas, je me suis énormément ba function_exists mais dans une classe [ par cedriclomb ] Bonjour,je cherche une fonction pour tester si une fonction existe mais dans une class exempleif(function_in_class($this-&gt;{$act}-&gt;getPage()){    Utiliser une classe template et une autre en meme temps... [ par big_mama ] Bonjour a tous.Mon probleme : Je suis entrain de me faire un pti site, pour cela j'utilise deux classe.La premiere gere les template et la seconde le AJAX a accent grave [ par JMKPROD ] JMKPROD créationd'une base en mysql [ par sofiesofie ] bonjour, je veu créer une base de donnée par le eaysyphp1.6 .je fait mon diagramme de classe en UML. e j'ai une classe  QUESTION(num_qst, laquestion, Structure schématique pour une couche d'abstraction SGBD [ par codefalse ] Bonsoir/Bonjour à vous tous Voila, je suis quelque peu en galère. J'aimerai me faire ma propre classe Database Requetes ajax [ par sbool ] Bonsoir;Cela fait plusieurs mois que je me dépatouille tout seul sur un site, mais la je galere vraiment,Je viens voir des grands programmeurs car c'e


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.