MVC (Model View Controller) for
May 9th, 2014
My perspective on MVC is through PHP and I have spent many years developing scalable Rapid Application Development (R.A.D.) PHP Frameworks. What I have learnt about MVC in that time is that it is very powerful, scalable, clean and if well-coded, Robust. The reason that such popular and respected frameworks like CakePHP, CodeIgniter, Yii, Laravel and Zend use the principles of MVC alone should be a hint that there is something special involved here. Also some CMS’s like Joomla use MVC structure.
MVC was originally described in terms of a design pattern for use with Smalltalk by Trygve Reenskaug in 1979. His paper was published under the title “Applications Programming in Smalltalk-80. How to use Model-View-Controller” and paved the groundwork for most future MVC implementations.
What is MVC?
MVC, or Model-View-Controller is a software architecture, or design pattern, that is used in software engineering, whose fundamental principle is based on the idea that the logic of an application should be separated from its presentation. Put simply, I would say that MVC is simply a better way of separating the logic of your application from the display.
The MVC principle is to separate the application into 3 main parts, known as the Model, the View and the Controller. Apparent from the diagram are the direct associations (solid lines) and the inferred associations (dashed lines). The inferred associations are associations that might seem apparent from the point of view of the user and not from the actual software design.
A simple way to think of this would be to consider the following:
– A user interacts with the view by clicking on a link or submitting a form.
– The Controller handles the user input and transfers the information to the model.
– The Model receives the information and updates its state.
– The View checks the state of the Model and responds accordingly.
– The View waits for another interaction from the user.
The pattern title is a collation of its three core parts: Model, View and Controller. A visual representation of a complete and correct MVC pattern looks like the following diagram:
The image shows the single flow layout of data, how it’s passed between each component and finally how the relationship between each component works.
Models are active representations of database tables. They can connect to your database, query it (if instructed to do so by a controller) and save data to the database. It is important to note that in order to correctly apply the MVC architecture, there must be no interaction between models and views: all the logic is handled by controllers.
Views can be described as template files that present their content to the user: variables, arrays and objects that are used in views are registered through a controller. Views should not contain complex business logic only the elementary control structures necessary to perform particular operations, such as the iteration of collected data through a foreach construct, should be contained within a view.
Controllers contain the logic of your application. Each controller can offer different functionality, controllers retrieve and modify data by accessing database tables through models and they register variables and objects, which can be used in views.
Benefits of PHP MVC framework development are:
– It has a substitutable interface for users
– There is separate component for user interface
– Synchronized views
– Various multiple views of the model is also available
– There is option for easy and smooth user interface changes
– It allows the function for easy testing
– It possesses high interactive web system development
– It can be easily maintained, upgraded and updated much to the convenience of the users.
We also specialize in Development with the Joomla CMS:
Joomla CMS makes extensive use of the Model-View-Controller design pattern.