Vision

A Quest for a Lightweight Modular Engine

Lightweight

The concept of “less is more” is often lost, and will be a guiding principle in all the code for the system. When a single class will do the job needed, it will be used rather than unnecessary design patterns for the sake of matching what one would expect from a text book. The goal is to produce a lightweight system, where the decision to use the engine vs using pure PHP is never an issue.

High performance is a critical aspect of the system. Proper use of caching wherever possible, and minimization of unnecessary files and complex structures will help achieve this.

The code must be clear and easy to understand with a very low learning curve. The system must remain out of the way of the site or application, making it easier to build the final product, as well as to maintain and enhance it afterwards. To accomplish this the code structure will need to be highly organized, providing clear separation between the system code and business logic of the site/app.

Modularity

We will strive to organize the system into individual modules which can be included or exclude as needed, to build the final product. Such modularity will allow the application to be built to dictate what is included, making the library only as complicated as needed to achieve the final outcome. This will avoid this project turning into a large, monolithic system. It will allow for expansion to meet future needs, as well as customization of specific functionality whenever necessary.

The Engine

The heart of the system will be a simple engine which will handle the integration, communication and interactions between included modules and the application specific code. In keeping with the plan to focus on simplicity, the engine itself will limit itself to system initialization, module loading, and dispatching the necessary activity to the various modules to handle the actual operation of the application.