Simon Willison’s Weblog

PHP auto class inclusion

When developing PHP applications, I usually have a classes directory somewhere in which I keep all of my PHP classes ready for inclusion. I name the class files ClassName.class.php. Normally I have a common.inc.php file that is included in all of the scripts in my application and requires the classes needed by the application, but today I wrote a few lines of code that saves me from having to alter that file every time I write a new class:

<php
$classesDirectory = 'classes/';
$classesExtension = '.class.php';
// require_once all classes in that directory
$d = dir($classesDirectory);
while (false !== ($entry = $d->read())) {
    // Check extension
    if (substr($entry, -(strlen($classesExtension))) == $classesExtension) {
        require_once($classesDirectory.$entry);
    }
}
$d->close();
// print_r(get_declared_classes());
?>

It’s nothing revolutionary, but it’s already saving me development time by allowing me to save a file straight in to the directory and instantly have the new class available to all scripts in the application.

This is PHP auto class inclusion by Simon Willison, posted on 26th June 2002.

Next: Use real links

Previous: Slashdot on XWT

Previously hosted at http://simon.incutio.com/archive/2002/06/26/phpAutoClassInclusion