CodeIgniter

Friday, December 16, 2011

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.

Posted by Rich Dunajewski at 5:33 PM

Day 0

Thursday, December 15, 2011

You know, over the years I've tried several times (unsuccessfully I might add) to create and keep up with a blog. Today, we'll try this again and see where it ends up. The point isn't to post several entries each day of verbose nonsense, but to occasionally throw my thoughts out there; perhaps even some links which I think are worth sharing.

We'll see. At any rate -- welcome!

Posted by Rich Dunajewski at 11:18 PM