begin process at 2010 02 10 06:49:40
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > [MYFRAMEWORK] - CLASS SQL

[MYFRAMEWORK] - CLASS SQL


 Information sur la source

Note :
Aucune note
Catégorie :Class et Objet ( POO ) Classé sous :SQL, MyFrameWork, Ergo5, nico1610, niprod Niveau :Expert Date de création :21/10/2007 Vu / téléchargé :3 270 / 127

Auteur : nico1610

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note


 Description

CakePHP, Symphony, tans de framework déjà éxsitant sur le web donne envie de les utiliser directement pour créer des sites internet.
Mais comment sont créé ces frameworks? Tel est la question que je me suis pausé il y a quelque temps.

Je pense qu'une des solutions de cette étude est de créer un pseudo-framework personnel qui pourrai alors mieux me faire comprendre leur fonctionnement.

La première étape de cette création est de créer un module pour la base de donnée. Le but : simplifier l'accès à la base sql tout en récupérant le plus facilement aux données.    

Voila donc le module que j'ai créé, il se compose de trois classes :
* Object : Une classe qui permette d'étendre les fonctions des autres classes
* SqlObject : la classe pour créer une connection a la base de donnée
* QueryObject : la classe pour gérer les requêtes SQL

Un exemple d'utilisation est donnée dans la source.

Nota : les fonctions forum_encode() et forum_decode() n'ont pas été implémenté, mais il exsiste assez d'exemple sur ce site pour les créer.

Source

  • $sqlquery = New SqlObject("localhost","root","");
  • $sqlquery->setdb("rezid-inscription");
  • $query = $sqlquery->query(SQL_WHERE,"rezid_user",array("id"=>123),array("nom"=>"MOI") ,array(SQL_AND => 1) ) ;
  • echo $query->name()."<br/>" ;
  • print_r($query->result) ;
  • echo "<br/>".$query->query;
  • echo "<br/>".$query->sql_error;
$sqlquery = New SqlObject("localhost","root","");
$sqlquery->setdb("rezid-inscription");
$query = $sqlquery->query(SQL_WHERE,"rezid_user",array("id"=>123),array("nom"=>"MOI") ,array(SQL_AND => 1) )  ;
echo $query->name()."<br/>" ;
print_r($query->result) ;
echo "<br/>".$query->query;
echo "<br/>".$query->sql_error;

 Conclusion

Il reste encore quelque point a peaufiné, surtout l'accès au variable interne des classes.

Nota : Le code sources est assez bien documenté, il devrai suffire a comprendre le fonctionnement du module.

Nota 2 : une connaissance poussé du fonctionnement des classes est souhaitable pour comprendre ce code.

 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


 Sources de la même categorie

Source avec Zip POO - LOGGING PACKAGE par Waredan
POO - OBJECT CLASS par Waredan
Source avec Zip POO - FACTORY CLASS par Waredan
POO - SINGLETON CLASS par Waredan
POO - PARAMETERHOLDER CLASS par Waredan

 Sources en rapport avec celle ci

SEARCH QUERY COMPOSER par Centauriel
Source avec Zip INTERFACE ADMIN par mitchmitch74
Source avec Zip CLASSE SQL par benjycorp
Source avec Zip SYSTÈME D'ARTICLES par Archima
DUPLICATION D'UNE BASE DE DONNÉES POUR SAUVEGARDE par fmarie

Commentaires et avis

Commentaire de stailer le 21/10/2007 18:34:05

En l'état, tu as développé une classe qui facilite l'accès à mysql. C'est tout. Ca n'a rien à voir le principe de fonctionnement d'un framework. Et ce n'est pas non plus une classe d'abstraction, puisque ta classe n'est pas indépendante de la base de données. On ne peut pas se connecter à une base SQLite ou SQL Server par exemple.

Enfin, tu dis que la 1ère étape de cette création est de créer un module pour la base de données... n'oubli pas que l'on peut avant tout utiliser un framework sans aucune base de données. Juste utiliser sa "méthode de travail", qui est le MVC généralement, ou l'approche "composant" (voir Prado par exemple).

Commentaire de malalam le 21/10/2007 19:19:36 administrateur CS

Hello,

oui, j'appuie ce que vient de dire Stailer (et je ne le répête donc pas).
Il y a des trucs que je ne pige pas, dans ton code :
- déjà, ta fonction file_put_contents_plus(). Si le but est d'écrire dans un fichier en utilisant la méthode d'ouverture en ajout, sache que file_put_contents() le fait aussi.
- je ne vois pas l'intérêt de ta classe Object. Si c'est juste pour avoir une classe capable de logger, exterieure à n'importe quelle autre classe, ok...mais elle est très incomplète. Elle devrait permettre des input et des outpout différents. Et donc, se servir d'abstractions au-dessus d'elle encore. ET ne pas s'appeler "Object" ;-)
- je n'ai jamais été fan des méthodes émulant une clause where, ou autre. Je préfère monter mes requêtes comme bon me semble. C'est souvent plus compliqué à utiliser...et puis, une requête complexe que l'on construit, on peut ainsi la tester dans un outil dédié à notre base de données, puis la copier coller dans le code, au moins. Là, c'est plus compliqué...
- tu aurais mieux fait de passer par des préparations de requêtes, et de travailler sur la façon dont les résultats sont retournés, ce qui me semble plus intéressant. Il n'y a qu'à voir ce que propose PDO : pas d'émulation de like, ou de where...mais plusieurs façons de récupérer un résultat, et plusieurs façons de préparer des requêtes.

Commentaire de nico1610 le 21/10/2007 23:29:23

Bon alors,
les classes données ici ne sont pas la totalité du framework, mais il me paraissait important de commencer par là.
Ensuite, pour le moment je n'ai pas appris a utiliser que MySql d'ou le faite que cette classe n'utilise que ca.

Pour la classe Object elle est encore incomplète, comme je te l'ai dit, c'est une ébauche.

Pour finir le framework que je bosse utilisera le principe MVC que je commence a bien comprendre.
Il faudra donc attendre les autres sources pour commencer a voir le framework. Ces classes n'étaient qu'un prélude.

Commentaire de stailer le 22/10/2007 01:25:53

bon pourquoi pas, mais je voudrais insister sur le fait qu'il est important que ton framework propose une abstraction à une base quelconque et non le figer à Mysql.

Ce que tu pourrais faire pour améliorer un peu tout ça, c'est de modifier ta classe en utilisant le driver générique PDO de Php5 . Ceci permettra au développeur de choisir un pilote (mysql, sql server etc...). Ca va te demander de revoir pas mal de choses et un peu de boulot, mais ça vaut le coup.

Commentaire de nico1610 le 22/10/2007 07:10:19

Ok, merci pour le conseil, je vais faire quelque recherche la dessus.

Commentaire de Yoteco le 22/10/2007 09:51:47

Autre conseil, prend un framework existant comme Zend Framework par exemple. Ce sera de toute façon plus complet qu'un framework maison... Et tu est entrain de réinventer la roue.

Commentaire de nico1610 le 22/10/2007 10:49:45

Comme dit plus haut, je veut "réinventer la roue" à titre purement éducatif & instructif, puis je dépose mes sources ici histoire d'en faire profiter les autres et surtout d'avoir leur conseil sur la façon dont j'ai fait la chose.

Mon but n'ai pas de réaliser un framework concurrentiel à Zend, CakePhp ou symphony, loin de moi cette idée !

Commentaire de Tortuegeniale le 22/10/2007 10:50:48

Pourquoi prendre un framework existant ? Ou est le plaisir ? Dans une boite encore, t'as pas le temps de tout refaire, mais si c'est perso ... En plus il a dit qu'il commence à bien comprendre MVC, donc faire soit même c'est le meilleur moyen d'apprendre et de consolider les aquis. Si personne ne réinventait la roue, tout le monde tournerai avec le même code, ce que je trouverai extrement chiant lol

Commentaire de marc1306 le 23/12/2007 17:48:40

Bonjour , je trouve cette idée êtres interessante pourquoi :
ayant également testé ZF, ou symfonie au bout d'un moment faut etre réaliste je n'utilise meme pas 1/1000 ieme du framework

je ne voulais pas non plus utiliser le system mvc qui est sensé simplifier le travail mais perso ( ce n'est que mon avis ) je trouve ça encore plus lourd !

là l'idée de faire des classes bien complète en s'inspirtant de ce qui est deja fait me plait

les cms , ou framworks sont trufé d'include qui include d'autres avec des variables de partout ...

suffirai de voir toutes les pages et calculs necessaire pour faire simplement une QUERY ,les frameworks sont qq même des usines .

là si qqn pouvais faire une belle classe pour mysql avec pdo , gestions des erreurs etc
je trouve ça au contraire excellent et prenneur

un site simple , propre efficace et rapide
que demander de plus ?

Commentaire de nico1610 le 15/09/2008 08:22:43

Salut marc1306,
En effet je me suis aperçu moi aussi de la compléxité et de l'usine a gaz que représentait ces frameworks.

Je ne te cache pas que depuis mon dernier post il y a un ans j'ai développé et paufiner un framework que je compte dévoiler à la communauté assez rapidement.

Ce framework à l'énorme avantage d'être bien plus simple et bien plus rapide que les autres. C'est un "lite" mais il me permet déjà de faire pas mal de chose. Puis son support est en francais :p :p

Je n'ai pas prévu de date de sortie mais je vais faire ca rapidement, il faut dire qu'une petite dixaine de développeur php l'utilise déjà pour éprouver ces défauts ! (dernière phase de test avant un sortie)

Commentaire de mckael le 17/10/2008 17:11:59

Hello,

Je compte tester ton "lite" framework nico, c'est vraiment très utile l'existence de ce genre d'outils pour projets adéquats.

Bon dev (y)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Convertir un nombre en expression literrale en PL/SQL [ par ThReM ] bonjour je cherche une source pour convertir un nombre en ce meme nombre mais ecris en toutes lettre (99 ==&gt; quatre vingt dix neuf) en langage PL/S Astuce du jour #1: Comment configurer une erreur de la base de donné MySql [ par SmallToad ] Quand vous avez de des erreurs de la base de donnée, êtes-vous déjà demander comment configurer le message d'erreur de la base de donnée MySql C'est Formulaire et SQL [ par Christophe46 ] Salut,J'espère trouver de l'aide sur ce forum,J'ai fait une base de données MySql, avec une table et des champs comme nom, prenom, telephone, adresse, Formulaire et SQL [ par Christophe46 ] Salut,J'espère trouver de l'aide sur ce forum,J'ai fait une base de données MySql, avec une table et des champs comme nom, prenom, telephone, adresse, LA taille d'une base de donnée sql [ par FleX ] ba en fait je suis sur Free et j'ai une base de donnée que je manipule en php.J'aimerai savoir comment c'est ty qu'on peut bien faire pour obtenir la Debuter une base SQL pour faire du PHP [ par bowen ] Bonjour je suis nouveau sur ce site et aussi a la prog !Bon je vous expliques mon probleme je veux creer un site sur le cinema asiatique et je vais do SQL [ par ProGMaN007 ] Salut,$dbserver = "localhost"; ok ça c ok$dbuser = je met quoi ?????? j utilise EasyPHP. Je met root ?$dbpass = mot de pas PROBLEME SIMPLE [ par g0belin ] sa me repond sa---------------------------ERREUR--------------------Réponse serveur SQL : You have an error in your SQL syntax near '@msn.com, 1234567 PROBLEME UPDATE [ par g0belin ] JE FAIS SA:$requete2= "UPDATE membre SET cle = $id WHERE LIKE '%$login%'";ET SA ME DIS SA:Réponse serveur SQL : You have an error in your SQL syntax n SQL Injection [ par thebigbang ] bonjour à tous,Je cherche des infos sur la méthode du SQL Injection.. Si vous vous y connaissez un peu, merci de m'aider, me renseigner ... me donner


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

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

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