When a client approached me to build a site that could list hundreds of different services and filter them I immediately thought it was a great excuse to use CakePHP. But they also need a lot of standard web pages with a good content management system behind them so I started to think how I could do this with my go-to CMS, WordPress. It could probably be done with WP’s categories and tags but they would need a fair amount of customisation and I’d probably have to write a plugin to cope with situations like showing content tagged with several different tags.
While comparing application frameworks I came across Ben Buckman’s post about using Drupal. I think it piqued my interest because of the way he was told that Drupal wasn’t suitable for entering the framework bakeoff but he went ahead and entered anyway, albeit from the back of the auditorium!
I’m very impressed with Ben’s demonstration of what Drupal is capable of without even typing any code. Now, I enjoy typing code and solving tricky problems but for a simple database-driven web application like this, there’s no need to keep inventing the CRUD wheel. I thought CakePHP made this kind of thing easy but it still takes a lot longer than this to have to working exactly as you want – you either have to bake and tweak or code everything from scratch.
To see for myself, I installed the latest version of Drupal to have a play. It’s probably been two or three years since I last tried Drupal and I’m finding it much easier to use than I remember it being. Within about half an hour I had a basic application with a custom content type with custom fields and taxonomies. Even the admin interface for entering content was perfectly laid out, nice and simple. The tag fields use autocomplete and tags are created if they don’t already exist Most impressive.
I estimate that this would take an hour or two in WordPress, even with my experience but it would be reliant on plugins and the interface wouldn’t be nearly as good. WP’s custom fields leave a lot to be desired.
CakePHP would probably take me even longer thanks to the complexities of the HABTM relationships required for tags. I always learn these techniques as I go but the learning curve is a lot higher with CakePHP. I’m getting really comfortable with it but I’ll definitely be looking at Drupal as a framework for simpler applications.