[Résolu] Améliorations possibles et conseils - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Résolu] Améliorations possibles et conseils (/showthread.php?tid=4988) Pages :
1
2
|
[Résolu] Améliorations possibles et conseils - Joojo - 13-07-2010 Bonjour avec les vacances je me suis remit dans le développement web. J'ai un nouveau projet de jeu tête (qui ne verra jamais le jour) mais cette fois j'utilise la POO de PHP, la PDO et enfin j'aimerai respecter (un peu) le modèle MVC. J'ai donc commencer par un script tout bête, l'inscription du membre. Il est tout simple et fonctionne. Mais n'étant pas encore très à l'aide avec la "conceptualisation" que demande la POO ainsi que ses diverses fonctions, je voudrai savoir si il y a des choses qui vous pics les yeux ou qui pourraient être améliorées, simplifiées. Bref je recherche des critiques. Pour ce script je n'ai pas utilisé la modèle MVC, la flemme de créer une page modèle pour 2 requêtes sql (je commence bien iffle: ). J'ai donc la page Inscription.php ou est le formulaire et enfin le fichier Inscription.class.php. Voici Inscription.php Code PHP :
Plus loin dans index.php est inclut le menu (menu.php) qui contient: Code PHP :
Et enfin Inscription.class.php Code PHP :
Enfin l'utilisation d'exceptions est-elle utile ici? Merci si vous lisez tout ça. RE: Améliorations possibles et conseils - Ter Rowan - 13-07-2010 pour les exceptions dès ce petit bout de code (je m'y suis mis après un volume bien plus grand et qu'est ce qu'on en ch.... à tout remettre) c'est quand même super confortable après je verrais au moins à deux endroits ces exceptions : dans chargerClasse : aucune raison d'avoir un message et puis c'est tout en cas de problème de fichier/classe à la place du "or die" même principe faut tout exploser, certes mais avec "classe (ben oui on est en objet donc classe, ok je sors) et sinon, même si je me pose encore la question pour moi même, au lieu d'avoir un $erreur qui se balade avec du texte dedans, je verrais bien une classe (pattern singleton) que tu appellerais pour stocker l'ensemble des messages et après l'envoyer à l'affichage (surtout, cela te permettrait d'annuler tout ce qui a été dit ou une partie, en cas d'exception levée par la suite) RE: Améliorations possibles et conseils - zeppelin - 13-07-2010 Si tu veux mon avis, la première partie du code de inscription.php n'a rien à faire la... A savoir: Code PHP :
TOn site ne va pas comporter uniquement inscription.php, donc tu devra dupliquer ce fragment de code... et ça c'est NON direct! Il te faut un point de départ ailleurs, que ce soit index.php qui charge une class Core(); ou je ne sais quoi, à toi de voir. Ensuite pourquoi fait tu ceci: Code PHP :
Je me permet un exemple, bien que très simple: Code PHP :
En tous les cas utilise _once, rien ne sert à la charger plusieurs fois! Ensuite pense à mettre === pour checker les booléenes. Code PHP :
Ensuite pour ta classe, sans rentrer dans le détail, n'hésite pas à encore plus fractionner ton code en méthodes. Au lieu de ton if imposant, pourquoi ne pas déléguer tout ceci à des méthodes en privé? En cas de débuggage tu sera directement dans quel méthode chercher, en cas de changement la même chose... Voilà en gros! PS. Je plussoie vivement le singleton pour les messages d'erreur, comme conseillé en dessus! :-) RE: Améliorations possibles et conseils - Shudrum - 13-07-2010 Pareil pour les erreurs. De plus : même pour les mails : reste en MVC, ici tu n'es plus dedans : Code PHP :
RE: Améliorations possibles et conseils - Ter Rowan - 13-07-2010 (13-07-2010, 07:23 PM)zeppelin a écrit : Ensuite pense à mettre === pour checker les booléenes. je pense que !$erreur correspond (en négatif) à == et pas === du coup if(!$erreur) donnera vrai si 0, false, null, ... RE: Améliorations possibles et conseils - php_addict - 14-07-2010 c'est bien ce qu'il disait: il ne fait pas du MVC (13-07-2010, 07:53 PM)Shudrum a écrit : De plus : même pour les mails : reste en MVC, ici tu n'es plus dedans : d'ailleurs tu ferais comment Shudrum ??? RE: Améliorations possibles et conseils - Joojo - 14-07-2010 Merci à tous, j'ai quelques idées ainsi qu'un paquet de questions. Je vais regarder tout ça, puis je créerai un double post. RE: Améliorations possibles et conseils - wildd - 14-07-2010 pour la remarque de zepplin: oublie le *_once. __autoload n'est appelé que si php rencontre une erreur lors de l'instanciation d'une classe de type: j'ai pas la déf de cette classe => avant de lancer effectivement l'erreur il appelle __autoload pr voir si il arrive pas à régler le problème. dans ces conditions tu risque difficilement de voir un fichier de déf de classe inclus plusieurs fois. RE: Améliorations possibles et conseils - atra27 - 15-07-2010 Je me permet de préciser que require_once ainsi que include_once sont bien plus gourmand en ressources que les include/require normaux, donc a éviter quand c'est possible... RE: Améliorations possibles et conseils - Joojo - 15-07-2010 Bon je vais y aller par étape. Tout d'abord le pattern Singleton, je le connaissais déjà mais que ce soit pour mes messages d'erreurs ou la connexion à la bdd je n'ai jamais comprit quelle était l'utilité ou la conséquence de ne pouvoir faire qu'une instance de la classe. Pour mes messages d'erreurs je viens de créer ceci: Code PHP :
Les booléens j'avais complètement zappé que cela existait. ^^' Merci cela m'a l'air beaucoup plus pratique pour vérifier avec des méthodes. Je vais plus fragmenter le code, avec l'aide de ceux-ci. Mais en ce qui concerne les exceptions, je ne vois pas du tout comment les utiliser, ce qu'il faut en faire. Je suis un peu perdu sur leur bonne utilisation. Faut-il les utiliser pour afficher les messages d'erreurs comme "mot de passe incorrect" ou les possibles erreurs sql ou je ne sais quelles autre exceptions exceptionnellement exceptionnelles? ( ^^ suis pas très inspiré pour expliquer mon désarroi) Donc ce que je comprend à propos des dires de Ter Rowan (attention aux yeux sensibles): Code PHP :
Je ne suis vraiment pas sur que cela fonctionne et l'utilité là est de 0. Donc je suis à côté de la plaque. En plus il faut encore utiliser une classe pour le traitement de ces exceptions.. |