[Phpmyadmin-devel] Revamping phpMyAdmin to utilize MVC architecture

Aaron Maturen atmature at svsu.edu
Sun Mar 28 06:36:22 CEST 2010


Hello Everyone,

My proposal is to rewrite the architecture of phpMyAdmin with the model-view-controller(MVC) design pattern. 

With this pattern we will be able to separate all the code into three parts:

1) The Model. This is where the business logic goes. All the code to connect to the database resides here. If we code the adapter pattern here we could potentially give PMA the ability to work with other RDBMS with simple plugins. 
2) The View. This is where the template system goes.
3) The Controller. Links the Model(all the data) with the View(what the user sees) 

Secondary Design Patterns that could be implemented alongside the MVC framework:

Singleton:
for handling sessions. makes sure that there is only ever one instance.

Strategy:
for handling languages. allows different languages/themes to be easily interchanged.

We can easily add the jQuery library into this to allow the MVC framework to utilize AJAX and be able to transfer data between the classes without a page refresh.

Benefits to the users: The MVC architecture will better support scalability and ease modification and maintenance(due to the separation of tasks). Also with the template system and business logic located in separate files comes the separation of the front and back end of the website; resulting in a more robust website.
 
The separation of the design and applications layers allow for increased levels of interactivity without compromising security. By using MVC Architecture and working in an Object oriented format, the website becomes increasingly modular where users can easily add new modules without disturbing the rest of the application.

you can view a sample website that I am in the process of transferring to MVC architecture at http://www.ivorypenguin.com/mvc and you can find the source code at http://www.ivorypenguin.com/mvc/mvc.zip I've just got module to allow users to log in. But the architecture is more or less done.

Thank You For Your time,

Aaron Maturen
atmature at svsu.edu
aaron.maturen at gmail.com




More information about the Developers mailing list