Autoloading ist in PHP eine feine Sache. Statt jede einzelne Klasse mittels eigenem require
einzubinden, kann man bei existierendem Autoloader einfach durch Aufruf der Klasse diese laden.
Eine Klasse legt man dabei einfach in einer Verzeichnisstruktur ab, z.B. unter Example/Foo/Bar.php
:
// Example/Foo/Bar.php
namespace Example\Foo;
class Bar {
// Stuff here
}
Der kleinste Autoloader der Welt mit autoload_register
verarbeitet dann alle in PHP ansonsten unbekannten Klassen:
spl_autoload_register(function(string $classname) {
require(__DIR__ . '/' . str_replace('\\', '/', $classname) . '.php');
});
Dabei muss der vordere Part mit __DIR__ . ‚/‘
natürlich auf den richtigen Basispfad gesetzt werden, in dem dann die Klassen liegen.
Und die Klasse setzt man dann nach eingeschalteten Autoloader wie folgt ein:
// See, no require here
$bar = new \Example\Foo\Bar();
Den kleinsten PHP-Autoloader der Welt kann man auch gut mit anderen Autoloadern zusammen verwenden, wie z.B. dem Composer-Autoloader.
Update 2022–10: Seit PHP8 spätestens ist die Verwendung von __autload
nicht mehr möglich, daher benutzt das Beispiel nur noch autoload_register
.