Josh Ourisman » On the other hand

PHP again?

July 29th, 2008

I've just started working on a new project using ExpressionEngine, a PHP-based content management system. I didn't really know a whole lot about it going in (it was the client's choice to use EE), but from what I've seen so far it's a pretty decent piece of software.

Being a CMS, it sits somewhere between blogging software like WordPress, and a framework like Django. Basically this means that it's much more structured than Django, proving a lot more blogging and related functionality out of the box but still much more flexible than WordPress allowing for a lot more freedom in the creation of your website. So far it seems like they've struck a good balance, providing a relatively shallow learning curve while still giving you a lot of powerful features.

Of course, for me, I found the more structured nature of it to be a bit restrictive. Also, I just don't get some of the choices they made. For example, your URLs, while readable and search engine friendly, all look like 'domain.tld/index.php/blog/archive/&c;'. Not a bad URL, but why on Earth is that 'index.php' in there? If they're going to use URL re-writing to provide nice URLs, why do they leave that useless bit of information in there? It's not like it would have been any harder for them to have taken it out. Also, the only obvious way to edit templates is through their web-based control panel. I'm sure there's really nothing stopping me from going in with an FTP client or via SSH and editing the text files directly, but they don't even hint at where you would want to look to do that (and as I didn't install it on the server myself I have no experience with the directly structure). Neither of these problems is a big deal, or a big obstacle to someone who knows what they're doing and wants to change it, but they just seem like very strange design decisions to me.

Overall, however, I think it looks like a pretty good system, and very good way to rapidly build a flexible and highly useful CMS. I don't know that it'll ever be my first choice for a project, as anything I can do with EE I can also do with Django, and in a way that's more intuitive (though probably has a higher initial investment of time), and anything that I don't need that level of flexibility and power for, I'd probably just use WordPress. But still, it's a nice piece of software, and I can definitely see how it would be a very good choice for a lot of people.

Ian wrote:

on Sunday, September 14th 2008 at 7:59 a.m.

They left "index.php" in there to support those on servers that have limited URL rewriting support. They didn't do it out of the box because there are different methods for doing the rewriting and it's best to let the end user choose how they want to do it. It takes all of 10 minutes to set it up if you're slow, so I see it as a non-issue.

Regarding editing of templates... by default there are no physical files created. By flipping a switch and configuring a fold, you can edit and update via SFTP:
http://expressionengine.com/docs/templates/flat_file_templates.html

Josh wrote:

on Sunday, September 21st 2008 at 2:05 p.m.

Ian, thanks for the tips. I did manage to figure it out, though I do still find a lot of the ExpressionEngine conventions to be a bit strange.

:
:
:
:
:
 

copyright © Joshua Ourisman 2006-2008 all rights reserved