The tools

Web Server

I will be building the application using PHP, a dynamic language used for creating interactive websites. Other options included Ruby, Java and Python, but I will use PHP as it’s incredibly powerful and I’m very familiar and comfortable with it.

I will also need a web server to run the application on. For this I will be using Apache, which is the leading, open source web server, which can run PHP applications. Instead of installing this and PHP myself, I will be using the all in one XAMPP bundle, which comes with Apache, PHP, MySQL and PHPMyAdmin.

MySQL is an open source relational database management system and PHPMyAdmin is an open source front end which allows me to easily manage the database, create tables etc without having to use the command line interface.

Frameworks

I will be using the CodeIgniter PHP framework. CodeIgniter is a light weight MVC framework, unlike CakePHP, Symphony etc, which are more fully featured, but much slower (some benchmarks show they’re up to 3 times slower in a simple site). The MVC design pattered used by CodeIgniter separates the Models (data access), Views (rendered UI) and Controllers (logic between models and views). This makes the code much easier to manage, as you don’t have embedded database queries in your views etc.

It also provides a light weight implementation of the Active Record pattern, which is a database abstraction layer.

I will also be using some JavaScript libraries, such as jQuery, although this is yet to be confirmed.

Editors and IDEs

I will primarily be using the open source Eclipse IDE. Eclipse was originally a Java IDE, but by using the PDT (PHP Developer Tools) plug-in, it provides much the same functionality for PHP as it does for Java, including projects, auto completion, syntax colouring, templates/snippets, auto indent and code folding, errors/warnings, debugging, declaration traversal and more. I will also be using Notepad++ which is a powerful Notepad replacement, and has full syntax colouring, auto indentation and folding, text snippets (via a plug-in) and limited auto complete. This will be used for quick edits, when all the functionality of Eclipse isn’t needed.

Version Control

Version control is essential in any project, even in a single user project. I will be using Subversion from Tigris with the Tortoise SVN shell extension which makes it even easier to manage repositories, without having to use the command line interface.

Bookmark and Share

Posted in Uncategorized. RSS. Trackback.

Leave a Reply