MVC stands for Model-View-Controller, a pattern widely used in web application development.
First, lets take a look at the three parts:
For each part of your application you use a different controller. It executes a different set of instructions based on the request, manages the models, and constructs the view.
Typically, after a request is made, following steps are undertaken by the controller:
- check if the request is valid, else return an error message
- update data if the request wishes to do so
- retrieve all data needed in the view
- construct a view object, and let it render the view
a model is an object which stores data, and most of the time represents an object from the real world which is managed by the application. It is the primary form of communication between your views and your controllers.
the view is responsible for displaying information received from the controller such as models.
Why use this pattern?
This pattern allows a loose coupling between Application Logic and View Logic. This has some numerous advantages:
- extensibility & maintainability
- if you have to redesign the application, you would not need to rewrite already working application logic, you only have to replace the view, and vice versa
- easy for other developers to understand what you were doing
I’ve made an example in php: github
I explain this example in detail here