|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Anthony BoulmierÉtudiant Inscription : mars 2011 Messages : 41 ![]() |
Salut à tous !
Voilà, j'ai développé une class permettant de stocker une multitude de connexion à l'intérieur pour simplifier l'utilisation des accès BDD dans PHP. J'aimerai savoir ce que vous en pensez, avis, remarques, critiques constructives, tout est bon à prendre ! Voici le code Code :
Cordiallement, Anthony <xetqL> BOULMIER |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Christele RubneauInscription : novembre 2009 Messages : 1 052 ![]() |
Bonjour,
Si tu veux un avis , il va me falloir étre franche C' est une usine a gaz pour risquer de créer des failles de sécuritées la ou la recherche va dans le sens d'une minimilisation du code. En premier tu t'attaques a une des premiére classe, la connection. Tu es bien OK que tout serveur qui se respecte interdit toute connection externe, et même toute connection sur un même serveur, entre noms de domaines. Tu vois déjas dans ce cas ta classe parait inutile. J'ajouterais que de plus en plus nous allons vers PDO donc tu vas te retrouver avec des classes de classes. A ce sujet sur la connection PDO pas de mise en route de la gestion d'erreurs ! pas de vrais TRY etc ... Je m'arrétes là, mais je reconnais que tu as du travailler sérieusement pour monter cela. |
|
|
10
|
|
|
#3 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 891 ![]() |
Bonjour
Cette classe m'a l'air pas mal du tout mais son principal défaut selon moi est qu'elle ne contraste pas vraiment avec un simple tableau d'instances PDO... Un défaut somme toute mineur est que la méthode "disconnect" ne provoque pas réellement de déconnexion. Tu devrais également la rendre plus générique en permettant d'ouvrir des connections vers d'autres SGBD. Une amélioration possible serait de permettre de passer des requêtes SQL directement dans cette classe qui se chargerait in-fine de trouver à quelle connexion cette requête correspond. Cela peut se faire par exemple en détectant un nom de table ou de base de données dans la chaine SQL. Par curiosité, pourquoi avoir créé cette classe ?
__________________
On vous a menti PHP, Injection de dépendances et composants La POO en PHP en 10 minutes pour moins Suivez-moi sur GitHub et TwitterN'oubliez pas de vous servir des bouttons , et
|
|
00
|
|
|
#4 | |||||
|
Membre du Club
![]() Anthony BoulmierÉtudiant Inscription : mars 2011 Messages : 41 ![]() |
@Cristele_r :
Merci de votre commentaire ! Citation:
Citation:
Citation:
Cependant, il est vrai que je ne me suis pas amuser à créer mes propres exceptions pour faire plus propre mais je ne vois pas ou cela peut apporter de l'insécurité, une petit explication ? @Benjamin : Merci de ton commentaire ! Citation:
Citation:
J'ai décidé de créer cette classe pour moi-même être plus tranquille avec les actions à faire sur les différentes sgbd disponible, manque plus qu'à faire les quelques modifications restantes pour que ma class soit plus ou moins comme je l'espérais. Cordiallement. |
|||||
|
|
00
|
|
|
#5 | ||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 891 ![]() |
Citation:
Citation:
__________________
On vous a menti PHP, Injection de dépendances et composants La POO en PHP en 10 minutes pour moins Suivez-moi sur GitHub et TwitterN'oubliez pas de vous servir des bouttons , et
|
||||
|
00
|
|
|
#6 |
|
Membre du Club
![]() Anthony BoulmierÉtudiant Inscription : mars 2011 Messages : 41 ![]() |
Il est vrai que je fais pas de , c'est plus clair au niveau du message d'erreur pour l'utilisateur de la classe mais rien de plus n'est-ce pas ?
Personnellement, j'en ai eu l'utilité il n'y a pas une semaine entre un site Magento et une bdd interne à l'entreprise pour faire des sondages / calculs etc. |
|
|
00
|
|
|
#7 | ||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 891 ![]() |
Non c'est complêtement différent. Renvoyer un status true/false permet de déterminer une action à effectuer si la connection n'a pas été ouverte, c'est je pense le mieux à faire. Dans ce cas c'est à toi de mettre le try / catch.
Lever une exception, c'est normalement comme son nom l'indique exceptionnel, par exemple dans le cadre des constructeurs qui ne peuvent rien renvoyer: comment savoir alors que quelque chose s'est mal déroulé ? Lever une exception (ou la laisser remonter ce qui revient au même) provoque l'arrêt immédiat de la méthode / fonction en cours et remonte la pile des appels jusqu'au script racine. S'il n'est à aucun moment catché cela provoque une FATAL_ERROR et interrompt brutalement le script. Une exception doit toujours être levée en dernier recours, s'il n'y a plus rien d'autre à faire, dans ton cas renvoyer false suffit amplement. Note: quand une méthode / fonction lève une exception et qu'on veut la faire remonter, on a alors 2 possibilités: soit on re-throw l'exception: Code :
Code :
En espérant avoir été clair.
__________________
On vous a menti PHP, Injection de dépendances et composants La POO en PHP en 10 minutes pour moins Suivez-moi sur GitHub et TwitterN'oubliez pas de vous servir des bouttons , et
|
||||
|
00
|
|
|
#8 |
|
Membre du Club
![]() Anthony BoulmierÉtudiant Inscription : mars 2011 Messages : 41 ![]() |
Je connaissais déjà le principe des exceptions, vu que j'en fais moult utilisation en Java, mais j'avais simplement mal compris ton affirmation ^^
|
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() ![]() Christele RubneauInscription : novembre 2009 Messages : 1 052 ![]() |
Bref comme je te l'ais dis, tu refait un PDO de PDO et pas de
Code :
|
||
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Anthony BoulmierÉtudiant Inscription : mars 2011 Messages : 41 ![]() |
Ma classe n'est pas un PDO de PDO.
Cette classe permet de STOCKER (à nouveau) plusieurs BDD à la fois ! Non pas une seule connexion où l'on peut changer les attributs etc. mais plusieurs. Ma classe s'utilise comme un tableau de PDO sauf que j'en simplifie l'utilisation. Après, je vois pas comment être plus claire |
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : septembre 2010 Messages : 7 958 ![]() |
utilise un pattern type registry ça sera plus simple, pourquoi ne par garder le systeme de DNS, j'ai pas MySQL je fais comment ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com