First, I get the irony of posting this on a blog engine written in PHP…

In the past month or two, I’ve had to dig into the sources for a few different PHP projects. It’s not been fun… Though I’m admittedly ignorant about PHP’s various MVC frameworks, none of the apps I’ve been debugging have used one. The result? More spaghetti than found in all of Italy… Chasing down bugs through endless layers of includes and seemingly convention-less folder structures has soured me on a language I once wanted to learn.

One project I’ve been debugging has a strange path through an error handler that leads to a 404 header being written, hiding the original error completely behind a ‘File Not Found’ page. OK, so I know this is nothing PHP specific, but trying to trace down the original error has been a nightmare. This project, which has been a tremendous help to me as an adjunct, is well supported and in widespread use. But wow, it gets hairy trying to trace through the code…

I’m sure that PHP can be used effectively, and maybe even be made elegant. But I wonder why anyone making a platform choice for a new project would opt for PHP. Castle’s MonoRail has totally sold me on the value of a convention-oriented MVC framework. Debugging a MonoRail app is a predictable and rather pleasant experience. If static typing isn’t your thing, then TurboGears looks nice from what I’ve seen. I’ve been digging Ruby, but haven’t worked with Rails. I’m looking forward to writing my next personal project with Rails though.