I have been trying to wrap my head around MVC pattern for about 6 months.I've read tons of articles, Q&A, and blog posts about MVC and HMVC patterns, but I just simply don't get it 100%.I tried learning MVC by exercising one of widely used PHP MVC framework, CodeIgniter. I've implemented few internal websites for my company with it. And STILL, I don't 100% get it. I believe one of the best ways to learn something is to follow strictly defined rules.So my question is: What is the most strict PHP framework in terms of how MVC pattern is implemented? One that defines how I use models, controllers, and views so that I can completely get what MVC is?
Most MVC-strict php framework
php;mvc;frameworks
Short answerThere is no such thing.Longer version:Frameworks do not implement MVC or MVC-inspired design pattern. Your application does.MVC is not some magic sauce, that you can add to your application by dumping it in a framework. Instead, you would actually have to learn and understand said pattern (and the accompanying principles and practices, like SOLID, LoD, SoC). Only then you can try to use it within your choice of a framework.If a framework advertises that it has MVC, then it is completely utter dren. In that situation, it is used to sell the framework to the noobs that care more about the latest hype then about application design and coding practices.The goal of a framework would be to provide you collection of tools, that, when used as whole, provide you with an altered/improved development environment. They deal with such things as routing, autoloading, low level abstractions for storage (no, I am not talking about active record anti-pattern) and the rest of thing that let save you time in boh development and maintenance. In conclusion.There are no MVC frameworks in PHP. All of those who claim to me such are actually among the worst ones. Namely - codeigniter, cakephp and yii. Avoid them at all costs (except if you get paid really well for it).If you need to use a framework, currently your best options would be latest version of Symfony 2.x, Zend Framework 2.x or Laravel 4.x. These ones will not implement MVC for you, but instead will do the least harm for you own application architecture.