29-01-2007, 10:38 AM
(Modification du message : 30-01-2007, 06:20 PM par Sephi-Chan.)
tes attributs ( public $nom;public $xp;public $pv devraient être privés et disposer d'accesseurs. Quel est l'interêt d'utiliser d'autres variables ? fais plutot :De plus, chaque classe (à part pour les classes privées) doit être définie dans un fichier propre nommé par son nom (donc dans Personnage.class.php5). Je suis contre l'utilisation des die dans le cas d'une mauvaise requete; utilise plutot une redirection propre avec un avertissement. Code PHP :
Code PHP :
Quand tu actualises ta bdd, n'oublie pas d'actualiser aussi les attributs de tes classes; car même si celle-ci disparait à la fin de la page, des effets de bords peuvent survenir (ex : une deuxième attaque survient ou un test de riposte sur un mort) Code PHP :
Et dernière chose, utilise une classe bdd pour tes requetes/connection. Avec une simple fonction die tu ne remontes que d'un cran, or en objet, tu auras souvent une petite dizaine de couches à remonter. (ex : $personnage->arme->getDegats(); si une erreur survient dans une fonction UPDATE de getDegats, tu ne connaitras pas les paramètres entrés dans personnage et arme qui ont provoqués l'erreur).
29-01-2007, 08:53 PM
gtsoul a écrit :tes attributs ( public $nom;public $xp;public $pv devraient être privés et disposer d'accesseurs.Pourrais tu développer un peu s'il te plaît ? J'avoue ne pas comprendre ce dont tu parles. gtsoul a écrit :Je suis contre l'utilisation des die dans le cas d'une mauvaise requete; utilise plutot une redirection propre avec un avertissement.Ok, mais quel genre de redirection, et si c'est par header comment afficher l'avertissement (puisque c'est instantané) ? gtsoul a écrit :Et dernière chose, utilise une classe bdd pour tes requetes/connection. Avec une simple fonction die tu ne remontes que d'un cran, or en objet, tu auras souvent une petite dizaine de couches à remonter.Là par contre j'ai rien compris . Je débute tout juste mes essais en POO, et je n'ai aucune idée des bonnes pratiques, des choses à faire/ne pas faire. Pourrais-tu m'éclairer la dessus ? En tout cas merci beaucoup pour ta réponse qui me donne des pistes qui me feront peut-être progresser. Sephi-Chan
29-01-2007, 10:06 PM
tu devrais te mettre aussi au mvc... ca va de paire! car la tu ne vas pas au fond de la philosophie objet / separer code/html
29-01-2007, 10:30 PM
(Modification du message : 29-01-2007, 10:32 PM par Sephi-Chan.)
Pourquoi pas tiens, tu aurais des pistes qui expliquent un peu le concept ?
Pour le moment j'ai pu trouver quelques articles sur http://tahe.developpez.com/web/php/mvc/ notamment, mais s'il y à d'autres articles, dans le genre CCC (Clair, concis, concret), je suis preneur . Sephi-Chan
29-01-2007, 10:39 PM
en gros pour faire simple:
tu fais une classe d'accesseur (model) qui te permet d'acceder a ta bdd (toto.db.class.php) tu fais une classe de fonctions applicatives qui derive de ta classe d'accesseur et qui y accede (controlleur) tu fais ton schema final qui se sert de ta classe controlleur.
30-01-2007, 09:23 AM
pour privatiser tes attributs : Voilà ca à l'air de servir à rien ; mais réduire la visibilité de tes variables améliore la lecture de ton code. Avec un IDE comme eclipse, tu peux à tout moment utiliser l'autocomplétion, sauf que si tout est public tu vas vite te retrouver avec des centaines de choix dispos ; eclipse gère la génération de getter/setter si tu n'as pas envie de le taper.Code PHP :
En outre, cela te permet de réaliser un traitement sur tes valeurs, ex : tu peux vérifier si elle est non-nulle, réaliser une requete si ce n'est pas le cas, effectuer un filtre, etc ... Pour le message d'erreur, tu crées une fonction refresh($url , $message) avec ob_end_clean() et header($url); tu peux essayer de passer le $message dans une variable de $_SESSION (que tu réinitialiseras au début de chaque page)ou par get ; personnellement si un message est important je le stocke dans ma bdd au même titre que les logs; sinon je l'affiche à la volée et je fournis un lien de retour. Sur le dernier point, tu peux utiliser les classes de connexion que j'ai présenté dans un tuto.
30-01-2007, 09:32 AM
tu peux aussi forcer les setter et les getter par defaut avec __set et __get ^^
tout est expliqué la :
http://www.manuelphp.com/php/language.oo...embers.php l'utilisation est normale par la suite. |
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
Carte aléatoire - quel algorithme pour un tracé correct ? | Harparine | 7 | 10 694 |
05-07-2010, 03:12 PM Dernier message: Delkaes |