Introducing Development Frameworks

by Carwyn : Monday 01 February 2010

Hi All, I’m Carwyn Balch, the latest addition to the Coolbox web development team. Although studying as an electronics engineer, I quickly turned both technology journalist and programmer, founding a popular technology publication and at the same time writing, studying and developing many Content Management applications.  This is my first post and I’d like to give you an overview of web development frameworks and share some of my experiences of using them.

Why use a Framework?

Since the dawn of time, humans have created tools to quicken the day to day tasks. From making a sharp implement to cut fruit this tool can then be used to create more complicated tools. This is the natural evolution of every part of a computer system.

Before we had higher level code as we call it, programs were written using machine code – a language that is understood quite well and run very quickly by machines – which is very difficult for us humans to write and read.

To make programming computers easier, engineers have come up with many simple syntax languages for writing applications.

If the milk is empty, go buy some more!

OK, so we’ve got some of the basic components of English language here, now what we are asking is: if the milk is empty, in php this would be written along the lines of:

<?php

If ($milk == 0) {
// Go buy some more
}

Programming languages themselves are powerful enough to perform straightforward tasks like the above by themselves, however, it takes many lines of code to perform simple and often repetitive tasks, which can lead to an application consuming thousands of lines of code.

A Framework is an extension to the main language, with popular methods that we programmers use each and every day. If a programming language is a crude knife, then the framework is a Swiss army knife with pre-engineered tools aimed at multiple tasks such as retrieving data from databases, sending mail or processing payments.

Which Framework?

I currently use the Zend Framework, which is simple and straightforward software built around the advances of PHP5. The Zend Framework allows developers to rapidly develop enterprise level applications by reducing the tedious and time consuming tasks of day to day writing, allowing us to concentrate more on the end user experience.

As the Zend Framework is a highly modular MVC design, it allows me to create applications that are reusable and easy to maintain.

Why Zend Framework?

I have been using Zend Framework since 2008. Prior to this I used a bespoke framework library written by myself building on the introduction of PHP5 and most importantly the addition of PHP5 OOP functionality to the language. Whilst developing, I came to the realisation that my workflow could be improved if I did not have to maintain my own framework, which was consuming massive amounts of my time for testing. After about a month of evaluation of various Frameworks, I chose the Zend Framework for its versatile modular design and exciting roadmap.

With key contributors to the PHP language, advanced debugging and application deployment tools, and under the wing of the Zend Corporation, Zend Framework is best placed to keep up to date with the advancements of PHP.

Current Projects using Zend Framework

I am currently working on redeveloping our existing Content Management System using the Zend Framework. This is a large scale project which involves re-constructing the existing modules of our CMS (which handle Page Content, Products, and even Orders for our E-Commerce Sites). Over time we plan to migrate more projects to this new system and to develop more advanced modules to give our clients even more control over their web content.

I’ll be putting up a demo copy in the coming weeks and will post a link back here when it’s ready.

Under the Hood

Zend Framework 1.10
Using Zend framework we have created a highly maintainable and flexible application which allows us to deliver rich featured applications quickly.

PHP Doctrine 1.2
We use Doctrine to interface with our databases allowing us to rapidly develop applications that can be deployed across multiple database servers including Oracle, Mysql and Microsoft Servers.

The Coolbox Library
Built over 7 years the proprietary Coolbox Library allows us to connect to enterprise services including Experian, Commidea, FileMaker and various Payment APIs including HSBC, Worldpay and  PayPal.

2 Responses to “Introducing Development Frameworks”

  1. Rob Tuley says:

    That milk analogy made me chuckle, random genius. Good luck with the rebuild using ZF — I’ve never been a massive fan of all the static methods in that library but it is an impressively capable codebase..

  2. John Wells says:

    What does Carwyn think of the CodeIgniter framework?
    Does he have any experience with it and any useful comparisons?
    John

Leave a Reply