J'ai vu (et fait) pire lors de premières conceptions objet, mais c'est pas tout à fait ça là
Déjà, quitte à commencer un projet, met toi à PHP5 plutôt que PHP4. PHP5 est beaucoup plus adapté que PHP4 pour faire de l'objet (visibilité des variables et fonction, passage par référence, etc, etc ...);
Ensuite tu vois que là tu mélanges de l'objet (membre.classes.php) et du non-objet (membre.php). Tu viens de tomber sur le premier (mais pas le dernier) problème à faire de l'objet en PHP.
Pour le résoudre, il te faut un point d'entrée à ton application, un "controller" qui va lancer les actions, un truc qui correspondrait au main en java. Exemple :
dans l'index :
Code :
- $controller = new Controller;
- $controller->execute();
|
Et le controller :
Code :
- class Controller
- {
- public function execute()
- {
- //le code que tu mets dans membre.php,
- //enfin plus ou moins ;)
- }
- }
|
C'est assez basique comme exemple, mais donc là tu vas faire du tout objet à l'exception de 2 lignes dans l'index. L'intéret est grand : un seul point d'entrée dans ton application signifie un seul endroit à modifier pour modifier toute l'application, etc, etc.
Et donc avec cette ptite intro, tu tombes dans l'apprentissage des "design pattern". Je t'"invite à lire en entier ce topic : http://forum.hardware.fr/hfr/Progr [...] 7425_1.htm
C'est hardu au début, mais si tu cherches à te renseigner sur tout ce que tu ne comprends pas ça viendra.
Je passes sur les méthodes de ta classe Member, parce que on va tomber dans des débats sur la POO ; moi, je ne ferais pas comme ça, mais j'ai déjà vu pire que ce que tu fais et faut bien commencer.
Ce que te montre supermofo ("factory pattern", enfin un d'entre eux) est à mon avis mal adapté : nul besoin d'utiliser des méthodes statiques. Et à mon sens c'est une bien piètre utilisation du factory pattern : c'est plutôt utile quand tu as le choix entre plusieurs objets pour la même action (par exemple, un objet qui va générer du html à partir de données, et un autre objet avec exactement les mêmes méthodes mais qui génère du pdf ; c'est le factory qui déterminera lequel instancier et tu n'as plus à t'en préoccuper dans le code). Là, utiiser une méthode statique pour instancier une classe du Model layer ... mouais pourquoi pas hein, je vois pas l'intéret 
Message édité par Djebel1 le 28-02-2007 à 21:13:57