Basically, PHP frameworks are programming layers that are promoted above PHP itself and that are much easier and quicker to deploy, normalizing and packaging 80% of the routines one is expected to work on without them, such as database interfaces. Therefore they free you from the chores of coding from very scratch line by line and do the common tasks that are shared among most of the projects for you.
Model is essentially a prototype of all similar entities bearing shared descriptive properties. In the database, a table can almost always be interpreted as a model.
View prescribes how the data(models) are presented(in the browser, as webpages for example). In most cases, a view is a webpage template.
Controller is the control hub that can be directly manipulated to control other stuff, namely models and views. It’s where the logic lies in your PHP applications.
3 major PHP frameworks:
1. Code Igniter, is well documented and has a shorter learning curve, thus more appealing to beginners.
2. CakePHP, is more of cup of tea for veteran PHP developers. As intuitive to use as CI, but not as well documented and the learning curve might be a little too long.
3. Smarty, I don’t know much about this one and only tried it once. It’s more like a templating system than a framework, I think. If you don’t plan to add registration functionalities, session management and things like that, you can go with Smarty, though CI and cake can also do a good job in templating.
Update: There’s also a 4th greatly renowned php framework that is Zend Framework. All seems well done and I’m gonna try it out for one of my recent projects soon.