Die Implementierung ist ganz einfach: Ändere in Zeile 3 den Namespace nach deiner Wahl (am besten zu deinem Projekt-Namespace) und ggf. in Zeile 14 das Verzeichnis, in welches du deine Klassen abspeichern möchtest.
Deine Klassen müssen dann nach folgendem Schema gespeichert werden:
PROJECT_PATH\inc\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
Das Laden der Klassen wird automatisch für alle Klassen des gleichen (Haupt-)Namespaces erledigt. Die autload.php
liegt in diesem Fall in PROJECT_PATH
.
Mehr Informationen zu PSR-4 gibt es unter http://www.php-fig.org/psr/psr-4/.
<?php
namespace MyProjectNamespace;
/**
* PSR-4 class autoloader
*
* @param string $class The fully-qualified class name.
*
* @return void
*/
spl_autoload_register(function ($class) {
$prefix = __NAMESPACE__ . '\\';
$base_dir = __DIR__ . '/inc/';
$len = strlen($prefix);
if (strncmp($prefix, $class, $len) !== 0) return;
$relative_class = substr($class, $len);
$file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
if (file_exists($file)) require $file;
});