Eocene: An OO Web Development Framework

Model-View-Controller (MVC) Architecture

The MVC design pattern uses three distinct groups of classes. Model classes represent application specific business objects and logic. View classes are responsible for rendering views to users in response to requests. Controller classes are responsible for interacting with users, view and model classes, coordinating user interactions with views and models. The MVC design decouples the three groups of classes for flexible software design. A well-designed application using the Eocene framework will lead to an MVC (model-view-controller) architecture. The Eocene framework separates controllers and views. A developer should implement application specific model classes. Figure 2 shows a schematic of the MVC architecture as implemented in an Eocene-based system.

Controller classes in the Eocene framework comprise of a front controller class, a base command class, and application specific command controller classes. The framework provides the front controller and base command classes. Application specific command classes are written by developers.  Of the view classes, the framework provides the TemplateEngine class that acts as a view processor. Application developers write their own templates which are html pages with tokens for generating dynamic contents. The framework also provides the DBConnect class to connect to a MySQL database. For other databases, the DBConnect class may have to be modified. Application developers also write application specific model classes. Figure 3 shows a schematic of the Eocene class diagram.

Conclusions

The Eocene framework introduces a pure Object Oriented methodology for Web application developments using PHP. It also uses the emerging trends of using xml-based application configuration files. The total size of all the class files used in the framework is approximately 50 KB. It uses a very fast and compact (less than 10 KB in size) template engine. I am currently using the framework in a site that creates dynamic contents for 1,000 unique visitors a day from a database of size 200 MB with more than half a million records.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Every language has an optimization operator. In C++ that operator is ‘//’”