|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 2 ![]() |
Je poste cette source en tant que débutant des class.
Après des années à faire du php tjrs a la vieille mode limite du php3, j'ai donc entrepris de créer une class pour voir comment ça marché vraiment... Ce script bien que fonctionnel est surement loin d être correct et optimisé... je le poste d ailleurs pour ça car j'aimerai que l'on m'explique ( et pas critique hein ) mes erreurs. Alors cette class donc: après récupération du nom du répertoire dans une table sql, vérification si le répertoire existe bien, affiche donc les photos du répertoire par page. j'attend des commentaires constructif pour me permettre de comprendre ce que j'ai mal fait Merci à vous Code :
|
||
|
|
00
|
|
|
#2 | ||||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Je vais essayer de commenter (sans trop critiquer Je vois que toutes les propriétés de la classe sont publiques: est ce que leur visibilité est cohérente avec l'utilisation qu'on fait de la classe ? Est ce que par hasard bon nombre de ces attributs sont destinés à l'usage interne de la classe et devraient donc être protégés ou privés ? Personnellement je mets toujours tout en protégé et je donne les méthodes getter setter pour que la classe ait toujours le contrôle sur ses propres attributs, mais c'est à toi de voir. Code :
Code :
Personnellement, comme PHP par ailleurs, j'utilise la nomenclature Java pour les noms des attributs/méthodes soit MyClass::myMethod(); A toi de choisir un formalisme tant que tu t'y tiens Ne serait-il pas judicieux d'utiliser un Singleton de PDO plutôt que de passer une variable de script en script ? Celle là est pas trop mal: http://tonylandis.com/php/php5-pdo-singleton-class/ Code :
Avec SplFileObject tu peux obtenir les fichiers d'un répertoire, tu mets un iterateur dessus pour filtrer les types de fichiers qui t'intéressent avec une classe étendue de FilterIterator et c'est fait. On verra comment faire dans les post suivant si tu veux. Si tu considère cette classe comme un helper HTML (une classe destinée à facilité la construction des vues) alors cette méthode pourrait devenir magique. Pourquoi ne pas utiliser __toString ce que te permettrait de faire "echo $my_gallery;". On peut aussi imaginer quelque chose du genre "echo $my_gallery($page);" qui appellerait la méthode magique __invoke de ton object. En somme, tu as bien saisi le mécanisme de l'encapsulation mais on dirait que tu as juste copié/collé ton processus iteratif et que tu l'as découpé en méthodes avant de tout jeter dans une classe. Tout n'est certes pas à refaire mais tant qu'a faire de l'objet on pourrait optimiser grandement ce code. De plus, cette classe est à la fois une classe modèle - ou de données - (en ce sens qu'elle accède à la BDD), une classe métier - ou application - (en ce sens qu'elle effectue des opération comme le redimentionnement d'images par exemple) et une classe de vue - ou de présentation - (en ce sens qu'elle peut s'afficher ou afficher des informations). Habituellement, on découpe ces 3 aspects dans des classes différentes de manière à améliorer la flexibilité de ton application. Tu peux lire un article qui traite de ça ici: http://fr.wikipedia.org/wiki/Architecture_trois_tiers
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||||
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : février 2011 Messages : 2 ![]() |
2eme version avec les qlque conseil apporter.
parcontre je ne voi pas comment empeché de continué si ya une exception. Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com