Salut à tous,
Après multe recherche je me suis un peu perdu sur la façon d'appliquer le modèle MVC en PHP et j'en ai ressortie plein d'interrogation
Intro
Je doit concevoir un site assez dynamique avec à peu près 25-30 objets que je vais retrouver en base de données ainsi qu'en Classes PHP.
Exemple:
- Region
- Pays (situé dans une région)
- Ville (situé dans un pays)
- entreprise (situé dans une ville)
Plus tant d'autre dont je ne parlerais pas ici.
PHP Objet
Voila ce que je compte faire en terme d'objet
Classes Entreprise, Region, Ville, Pays
Maintenant comment refleter les liens entre ces objets :
A. creer un objet Array de classe Ville dans la classe Pays ?
B. creer un objet Array de noms de ville dans la classe Pays ? (pas vraiment POO)
C. creer un objet de classe Pays dans la classe Ville (lien vers le père) ?
Si ca dépend de mon utilisation, je peux pas trop répondre pour le moment mais je vais ensuite rattacher d'autres entités à celle ci.
Modèle Vue Controller
Ensuite en terme de design General MVC pour simplifier mon code source je suis parti de ce principe :
- Dossier Classes (1 fichier par classe contenant uniquement le data model, ex: ville.class.php)
- Dossier Pages : contenant les main controller avec dedans l'appel de procedure/fonc dependant de l'interraction (IF POST variable then .. else print formulaire ...
- Dossier View : contenant l'ensemble des fonction d'affichage des objet avec le code HTML (les page incluront donc les view nécessaires)
J'attend déjà vos remarques sur ce principe.
POO & BDD
Une autre colle maintenant : mes fonction de création d'objet et interaction database. je sais pas trop ou les mettre:
exemple de méthode : loadfromdatabase, savetodatabase ?
- dans des fichier séparés ? 1 fichier par classe (ex: Ville.database.php) ?
- dans la classe elle même car intimement lié ?
Structuration dis moi si ma logique convient:
dans la page (le controller) j'appel la fonction $Array = getFromDatabase($id)
ensuite je construit mon objet $myEnterprise = new Enterprise($Array)
ou alors directement le faire dans la fonctione DB qui construirai l'objet, ainsi dans le controller:
$myEnterprise = getFromDB($id)
Voila, j'espère avoir été assez claire sur les questions que je me pose.
Merci pour vos retour.
Partager