WebDev Frameworks – CodeIgniter – Development
So far we’ve established that CodeIgniter is simple to install, streamlined to develop and efficient to host, but what do we actually get with this package? There are two main areas of functionality provided by CodeIgniter that form the core of its existence: classes and helpers.
Firstly, classes. We are provided a whole heap of pre-built class libraries to help build a back-end that can easily deal with common situations. These are essentially a compilation of well written and thoroughly tested functions designed to simplify the tasks most web-facing applications will require somewhere in their repertoire.
As an example, dealing with user input is notoriously laborious in web development. Collating form data, validating the input, removing malicious entities and formatting the results is the bane of any productive day. However, using the form validation class provided with CodeIgniter is, by comparison, trivial. It allows us to ensure user input is safe and present when required and, coupled with the email class, allows us to quickly generate emails to send back to the user. We can allow file uploads and zip them, we can manipulate images and generate thumbnails and we can keep this all in session data for authentication or displaying errors and notices. The database class ensures we can keep a permanent record of this data easily too, and throughout this whole process we haven’t written a single function of our own.
On the front-end CodeIgniter provides us with a selection of helpers. These are a series of functions designed to literally help with the creation of an interface. Continuing from our scenario above, the form helper can dynamically create text boxes and file upload forms and even populate them with session data or previous input. We also have helpers to format text, HTML, dates and URLs and CAPTCHAs to help us retain our humanity. A full list of CodeIgniter’s classes and helpers can be found in their user guide.
Don’t be fooled by this simplification of CodeIgniter’s rich feature set. Due to the fundamental nature of the framework a certain level of technical knowledge is required to shape CodeIgniter in to something useable – this is not the point-and-click-and-blog service you will find with the likes of WordPress. But nor is it designed to be and the “right tool for the job” axiom is just as appropriate in web development as any other profession. Similarly, there are a few gaps in the CodeIgniter arsenal and we will take a look at these next time.