For the last couple of months I've been putting the open-source PHP framework CodeIgniter through its paces both at home and at work. It has to be one of the most flexible and bug-free application/framework that I've used to date.

Many frameworks require you to use their "friendly" CLI to create your application, but CodeIgniter does not. While I'm a big fan of the command line, I don't always have the desire or ability to use it on all projects. At work, we use Windows servers so SSH is not a luxury that I have. It's RDP or nothing. By contrast, CodeIgniter allows you to set up a new application all via FTP. If you want CLI functionality, just write a shell script to create the file structure you desire.

Bonfire is an interesting project, however. Basically, it's a backend that runs on CodeIgniter so you can provide some kind of management system to complement your front-facing web application. Anyone who has tried to build their own admin interface knows the challenges associated with the task -- especially if you want to standardize the interface so it can be reused in other projects. Bonfire handles all of that and leaves the content portion entirely up to you. I refrain from calling this a CMS, because it's not. It'll manage your users, email batches, and permissions, but doesn't give you an interface to create content. That's your job. I can't express how great that is for the type of work that I do where a traditional CMS like Drupal is overkill (and a pain to modify to fit a certain task) but you don't have the budget -- or the will power -- to write an entire system from the ground up.

There is one nagging issue with Bonfire, though. It's filled with bugs! A couple of weeks ago I was installing it for a project at work and found out it didn't install itself properly. Tables in the database were incomplete, the UI wouldn't properly set configuration options in the database, and the Module Builder feature seemed crippled. Luckily I was able to finish the install by manually creating some entries in the DB and I didn't NEED the Module Builder (I just created my MVC application in with the Bonfire application which suited my needs just fine.) The project is under active development, so hopefully things get fixed in time. Even with these bugs, the application still saved me dozens of hours of programming time.

On a side note, I was successful in writing a Drupal 7.x module that interfaces with CodeIgniter 2.x. You might ask, "why do you need Drupal and CodeIgniter to integrate? Can't Drupal run your entire application?" The answer is yes, Drupal could do it all, but I find custom development on Drupal to be very clunky and lacking in structure. Don't get me wrong, Drupal's API is wonderful, but it's not the same experience you'll find in CodeIgniter's MVC approach. When you need a CMS for user and content management, but need to wrap a complex custom application around it all, being able to leverage Drupal and CodeIgniter actually makes sense.

comments powered by Disqus

About Rich Dunajewski

Hello! I’m Rich, a web developer from New Jersey. I primarily develop web applications for mobile and desktop devices using such frameworks as Sails.js, Cordova, jQuery, and Twitter Bootstrap.

  • Lives in New Jersey, USA