Bonjour
Tout d'abord petite précision, je cherche pour mes projets à mettre en place le modele MVC ou du moins avoir un code propre et bien organisé.
Je sais très bien qu'il existe des framework de qualité (symphonie, zend, cakephp etc.).
Ce n’est donc pas le propos
Après avoir lu et relus plusieurs fois plusieurs tutoriels sur la méthode MVC :
http://bpesquet.developpez.com/tutoriels/php/evoluer-architecture-mvc/
http://fr.openclassrooms.com/informatique/cours/adopter-un-style-de-pr ... modele-mvc
http://www.grafikart.fr/tutoriels/php/mvc-model-vue-controller-php-132
http://fr.openclassrooms.com/informatique/cours/votre-site-php-presque ... -pratiques
Je pense avoir compris le principe et le rôle des contrôleurs, modèles, vues, routeur et controleur frontal (généralement index.php)
Je bloque pour le moment sur ce point : les URL et le controleur frontal (et le routage associé)
La plupart des tutoriels donnent ce type d’exemple :
dans un cas concret :
Blog et billet etant statique il est donc aisé de créer le contrôleur blog et l'action billet.
Alors pour ces exemples ca semble donc facile à comprendre.
Mais comment utiliser cette architecture si on veut des URL de ce type :
Sachant que nomcategorie et nomrubrique est variable, il s'agirait donc de paramètres dynamiques.
Exemple si on prend une boutique :
Comment dans ce cas la déterminer un contrôleur et une action ? Doit-on obligatoirement avoir une Url a rallonge de ce type :
Controleur=categorie-rubrique
Action = liste
arg1=chaussures
arg2=enfants
ou autre possibilité :
Idem si pour les articles je veux ce type d'URL :
Difficile également d'identifier un contrôleur et une action. Est-on obligé d'avoir :
exemple avec une URL de WRI :
https://www.webrankinfo.com/dossiers/techniques/seo-produits-supprimes
ici on peut très bien imaginer le contrôleur "dossiers". mais pour l'action? "technique"s semble être une rubrique dynamique, il est donc difficile de créer une action "techniques"
Et lorsqu'on part sur du MVC 2 avec controleur frontal doit-on forcement avoir pour son url rewriting de ce type :
Comment gérer si on peu avoir un nombre d'arguments variable?
ou si on veut modifier un peu la structure lorsqu'on appelle certains controleurs.
Exmeple si je reprend l'exmeple suivant :
Que je soujaite plutôt le mettre sous la forme :
Dois je créer une règle spécique dans le .httacess pour chaque controleur
Vous sentez que c'est un peu confus dans ma tête ou pas? :mrgreen:
Pour le moment je serais plutôt tenter de partir sur un modèle MVC simple sans contrôleur frontal, de cette façon j'ai l'impression d'être plus libre dans la gestion des URL, des paramètres etc. Mais ce n’est évidemment pas la solution idéale et la plus facile à maintenir et a faire évoluer.
Autre point est-ce courant d'avoir plusieurs modèles dans un même contrôleur ? Ou est-ce contraire au modèle MVC ? Faut-il forcément 1 seul modèle pour 1 contrôleur?
J'ai également l'impression que le modèle (design patern) MVC impose enfin de compte un grand nombre d'include (ou require). Ce que je trouve pas forcément très jojo.
Tout d'abord petite précision, je cherche pour mes projets à mettre en place le modele MVC ou du moins avoir un code propre et bien organisé.
Je sais très bien qu'il existe des framework de qualité (symphonie, zend, cakephp etc.).
Ce n’est donc pas le propos

Après avoir lu et relus plusieurs fois plusieurs tutoriels sur la méthode MVC :
http://bpesquet.developpez.com/tutoriels/php/evoluer-architecture-mvc/
http://fr.openclassrooms.com/informatique/cours/adopter-un-style-de-pr ... modele-mvc
http://www.grafikart.fr/tutoriels/php/mvc-model-vue-controller-php-132
http://fr.openclassrooms.com/informatique/cours/votre-site-php-presque ... -pratiques
Je pense avoir compris le principe et le rôle des contrôleurs, modèles, vues, routeur et controleur frontal (généralement index.php)
Je bloque pour le moment sur ce point : les URL et le controleur frontal (et le routage associé)
La plupart des tutoriels donnent ce type d’exemple :
Code:
nomsite.com/controleur/action/id
dans un cas concret :
Code:
nomsite.com/blog/billet/3
Blog et billet etant statique il est donc aisé de créer le contrôleur blog et l'action billet.
Alors pour ces exemples ca semble donc facile à comprendre.
Mais comment utiliser cette architecture si on veut des URL de ce type :
Code:
nomsite.com/nomcategorie/nomrubrique
Sachant que nomcategorie et nomrubrique est variable, il s'agirait donc de paramètres dynamiques.
Exemple si on prend une boutique :
Code:
nomsite.com/chaussures/enfants
Code:
nomsite.com/categorie-rubrique/liste/chassures/enfants
Action = liste
arg1=chaussures
arg2=enfants
ou autre possibilité :
Code:
nomsite.com/cat-chassures/rub-enfants/liste
Idem si pour les articles je veux ce type d'URL :
Code:
nomsite.com/titrearticle-id
Difficile également d'identifier un contrôleur et une action. Est-on obligé d'avoir :
Code:
nomsite.com/articles/billet/titre-article-id
exemple avec une URL de WRI :
https://www.webrankinfo.com/dossiers/techniques/seo-produits-supprimes
ici on peut très bien imaginer le contrôleur "dossiers". mais pour l'action? "technique"s semble être une rubrique dynamique, il est donc difficile de créer une action "techniques"
Et lorsqu'on part sur du MVC 2 avec controleur frontal doit-on forcement avoir pour son url rewriting de ce type :
Code:
# Réécrit une URL de type xxx/yyy/zzz en index.php?controleur=xxx&action=yyy&id=zzz
RewriteEngine on
RewriteRule ^([a-zA-Z]*)/?([a-zA-Z]*)?/?([a-zA-Z0-9]*)?/?$ index.php?controleur=$1&action=$2&id=$3 [NC,L]
Comment gérer si on peu avoir un nombre d'arguments variable?
ou si on veut modifier un peu la structure lorsqu'on appelle certains controleurs.
Exmeple si je reprend l'exmeple suivant :
Code:
nomsite.com/categorie-rubrique/liste/chassures/enfants
Code:
nomsite.com/cat-chassures/rub-enfants/liste
Dois je créer une règle spécique dans le .httacess pour chaque controleur
Code:
# Réécrit une URL de type xxx/yyy/zzz en index.php?controleur=xxx&action=yyy&id=zzz
RewriteEngine on
news-([a-zA-Z0-9_-]*)-([0-9]+)\.html$
RewriteRule ^cat-([a-zA-Z0-9_-]*)/rub-([a-zA-Z0-9_-]*) ..... index.php?controleur=categorie-rubrique&action=$3&categorie=$1&rubrique=$2 [NC,L]
etc.
Vous sentez que c'est un peu confus dans ma tête ou pas? :mrgreen:
Pour le moment je serais plutôt tenter de partir sur un modèle MVC simple sans contrôleur frontal, de cette façon j'ai l'impression d'être plus libre dans la gestion des URL, des paramètres etc. Mais ce n’est évidemment pas la solution idéale et la plus facile à maintenir et a faire évoluer.
Autre point est-ce courant d'avoir plusieurs modèles dans un même contrôleur ? Ou est-ce contraire au modèle MVC ? Faut-il forcément 1 seul modèle pour 1 contrôleur?
Code:
ControlleurBillet.php
require_onde ('modele/modele1.php') ;
require_once ('odele/modele2.php')
object1= news class_model1(param1, param2, param 3) ;
object2=news class_model2(object1) ;
require_once (' vue/vueBillet') ;
J'ai également l'impression que le modèle (design patern) MVC impose enfin de compte un grand nombre d'include (ou require). Ce que je trouve pas forcément très jojo.