Chapter 1. Introduction

Table of Contents

Philosophy
Simplicity
Small and efficient framework
Developers, developers, developers
Goals

Web:Extend is an open source PHP5 framework focused on ease of use and efficiency. It is licensed under the LGPL. The main contributor to the project is the company Dev:Extend.

Philosophy

The development team tries to adhere to the following philosophy whenever possible.

Simplicity

Simplicity normally indicates a state of clarity and straightforwardness, or in other circumstances an absense of complexity. Simple concepts and situations are commonly easier to explain and understand than complicated ones, and can indicate freedom from hardship, effort or confusion.

In context, a developer using Web:Extend should be able to translate any project requirements into a finished application with minimal planning and implementation. Ideally, the developer should not have to focus on anything other than the requirements themselves. The tools available should be easy to use and understand, and should also present as few disruptions as possible in the implementation of any task.

Small and efficient framework

Passive View MVC

The framework provides an implementation of the MVC (Model-View-Controller) pattern, albeit a variation on the standard pattern. This variant is explained in detail by Martin Fowler in his Passive View article. It is designed to enhance testability, but it also provides a much simpler approach to MVC. The Passive View receives data from the controller and from this renders the page. No further action is carried out by the Passive View, as further access to the model or the controller is deemed to be unnecessary. Further information regarding this structure is available in the section called “MVC architecture”.

Minimal Interface

The framework is designed using the Minimal Interface style, which means classes only have methods that are strictly necessary for their function. This allows a developer to become familiar with the framework with relative ease as all classes involved are small and concise. On occasion there will be methods included for convenience when a noticeable pattern in class usage is observed.

Write less but better code

By keeping things simple, the framework assists in the creation of better code. A developer should be able to create an application with very few lines of code without the need to handle technicalities. The intention of this framework is to carry out the coding details on behalf of the developer.

Automating security where possible

A developer should not be concerned with security where it is more suitable for the framework to ensure that an application is as free from vunerabilities as possible. This can be enforced with the provision of various checks and security measures inside the framework, along with a set of recommendations of coding practices for the developer. The documentation also includes information on the various security issues that can arise within applications.

Loose coupling

Each module of the framework is loosely coupled, which means a given module can be used without requiring any other. For example, if the MVC architecture is not desired it can be ignored. The database can be accessed directly rather than via models, or scripts can be created using only the database and mail modules to send data via email to all system users. The code can be use freely as required, without any restrictions. And if it emerges that this is not possible for some reason, this can be reported as a bug.

No bloat

Bloat is not the exact opposite of simplicity, but it is a significant cause of complexity in a lot of software. This is most commonly a disadvantage. Bloat can arise due to a number of reasons, some of which are:

  • Following current popular coding trends

  • Focusing on additional features that would be used by a small subset of users

  • Automatic generation of code through additional packages

  • Duplication of exiting features

This situation will not occur with this framework. In some circumstances automatic code code can provide some advantages, but the benefits found within this framework will in many cases outweigh these. Any further functionality can be provided through plugins.

Developers, developers, developers

The developers who make use of this product are considered to be the most important people in the world by its creators. Therefore any feedback and queries from developers is considered and responded to whenever possible. Comments and help requests can be sent directly via email, through a mailing list, IRC and also by opening tickets requesting further documentation or tutorials.

Additionaly, any further help with this product is appreciated. Comments and suggestions for improvements to the product are always welcome and will be taken into consideration.