eo

Algorithmic Advent: 08 – Namespace autoloading

Written on 8 Dec 2010. Tags: post , dc:language=en , php , algorithmicadvent

If you're not using PHP namespaces or if you're not using autoloading, now would be a good time to start. Loading dependencies won't get easier that that.

/* This code should be placed in your index file */
 
// Set library path (put your classes in this directory)
$libraryPath = realpath('./library');
 
// Add to include path
set_include_path($libraryPath . PATH_SEPARATOR . get_include_path());
 
// Autoloader
spl_autoload_register(function ($class) {
    require_once str_replace('\\', '/', $class) . '.php';
});
 
 
 
use Demo\Foo,
    Some\Other\Name\Space\Bar;
 
$f = new Foo(); // The files './library/Demo/Foo.php' and
$b = new Bar(); // './library/Some/Other/Name/Space/Bar.php'
                // will be autoloaded

290/316