Boiler is a PHP framework we design our custom development projects on. With a the help of the Open Source community we aim to deliver a fast, secure and flexible framework which you can base your custom development work on.
Before you begin, it is important to know the goals of the Boiler framework, in order to understand our methodology for building it the way we have.
Frameworks and CMS‘s are inherently bad at memory management, favouring including every file in the whole application, to simply loading the bits you need to load to fulfil the request. As such for every component added, there is a cost over the entire runtime of every page in the application. While designing this system Bluelight Media came up with a new solutions, based on PHP’s autoloading. By making the class structure follow the folder structure, we can include only the necessary files needed for the request on the fly – keeping everything running extremely fast.
Not only is the framework fast while loading, it also enables fast developing. Boiler comes with code generation tools which allow you to build Models in one command, while enabling you flexibility in additions and overrides you may wish to make. Boiler will connect to your MySQL database, download all the tables into separate models, then use your foreign keys to create links between these models – automatically!
The Boiler framework is designed as an MVC, That is a Model, View, Controller framework. This type of system is designed to allow you to split up your code in a tidy way, helping you find errors, and migrate code. Furthermore, because of our namespacing system you can label Models and Controllers with the same class names, helping to maintain easy to follow code.
Boiler is designed to allow automated testing through many PHP Quality Assurance tools. As well as ensuring that your code always works, through PHPUnit, it has built in support for PHP Mess Detector, Skeleton Test generation (via PHPUnit), Code Coverage tests (via PHPUnit) and duplicate code testing. This is all bundled into an XML file which can be run on the ant build system, which allows the entire test suite to be tested with a single command.
Many people ask why we use the ant build system, rather than GNU make or similar. The answer to this is simple: we want our framework to be platform independent, able to deploy on all systems, while ensuring interoperability with a standard build system. As an XML file, the code is also easy to read for a web developer.
The Boiler framework has been designed to allow Continuous Integrators to manage the entire code base and code check-ins. With large developments having multiple developers, often in different physical locations, being able to control code and ensure a code base remains stable is a difficult task. Boiler overcomes these problems by being able to drop into the Jenkins Continuous Integrator, ensuring build reliability across platforms.
Boiler is an open source solution, allowing companies to collaborate on fixes, and creating a community around which classes are built, and issues are solved as a group. We believe this type of development increases security and support.
Boiler aims to mitegate many types of attacks by building in security as a default feature. Through it’s Database framework Boiler is able to effectively thwart SQL inject attacks without any need for special treatment by the developer. Furthermore, the system is built with security libraries such as XSS escaping to ensure that you have all the tools necessary to ensure a secure application.
As well as this, Boiler is designed to have all executable files outside the root directory of the web server. As well as ensuring that individual PHP files cannot be run ad-hoc, it also further ensures that entry points are carefully managed through the Controller routing system.
Boiler also, by design, allows Search Engine Optimised URLs, which Google and alike find easy to crawl. This is done through the close integration of the Apache webserver to the controller routing systems.