Beaucoup plus populaire que les conteneurs implémentant l'inversion de contrôle, les frameworks MVC (Model-View-Controller ou Modèle-Vue-Contrôleur) en PHP sont légion. Ils participent de cette attente irrationnelle du monde PHP envers la programmation orientée objet et son corollaire, le framework. Seul Rasmus Lerdorf semble percevoir le comique de la situation avec son no-framework PHP MVC framework. Avant de vous décidez de démarrer votre prochain projet avec un tel framework, considérez d'abord les inconvénients suivants :
http://my.web.com/module/action/params pour invoquer l'action action du module module. Aussi lorsque l'on souhaite créer un site web dont les URLs représentent l'architecture fonctionnelle du site, cela s'avère très compliqué ! Ainsi au lieu d'avoir l'URL http://www.numabilis.com/services/realisation_de_sites_web on a quelque chose comme http://www.numabilis.com/article/view/id/35. Le module de réécriture fourni est généralement insuffisant : les sections Services et Réalisations étant toutes deux constituées d'articles, la réécriture ne permet pas de distingués les articles de ces deux sections ! Comme souvent les couches techniques imposent des contraintes fortes sur le fonctionnel.Les frameworks PHP, dans leur très grande majorité, souffrent d'une trop grande complexité. Ils singent le monde Java (voir les implémentations PHP de Struts : Phrame, PhpMVC ou Studs) en faisant du tout objet avec force renfort de template engine et de mod_rewrite.
Par conséquent, sauf si vous êtes chef de projet dans une grosse structure, dont le poste n'est justifié que par votre capacité à résoudre les problèmes que vous avez vous même créés, vous devriez vous passer d'un tel framework.
