I program in PHP a lot, but I've avoided using autoloaders, except when I've been working in frameworks, such as symfony, that include an autoloader. Last month I started working on a system that's designed to be part of a software product line: many scripts, for instance, are going to need to deserialize objects that didn't exist when the script was written: autoloading went from a convenience to a necessity.

The majority of autoloaders use a fixed mapping between class names and PHP file names. Although that's fine if you obey a strict "one class, one file" policy, that's a policy that I don't follow 100% of the time. An additional problem is that today's PHP applications often reuse code from multiple frameworks and libraries that use different naming conventions: often applications end up registering multiple autoloaders. I was looking for an autoloader that "just works" with a minimum of convention and configuration - and I found that in a recent autoloader developed by A.J. Brown.