3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Lädt Klassendefinitionen anhand eines Classmaparrays. * Der Arrayschlüssel entspricht dem Klassennamen und der Arraywert dem Pfad zur Klassendatei. * Alle Arrayschlüssel werden in Kleinbuchstaben gewandelt, um Fehler durch Groß- Kleinschreibung zu vermeiden. * @package Classloader */ class ClassmapAutoloader { /** * Classmap: array("Klassenname" => "Pfad zur Datei mit Klassendefinition"). * @var array */ protected $classmap; /** * Registriert die Funktion "loadClass" als Autoload-Funktion. * @param array Classmap. */ public function __construct(array $classmap = array()) { $this->classmap = array_change_key_case($classmap); spl_autoload_register('self::loadClass'); } /** * Fügt ein Array zur Classmap hinzu. * @param array Classmap. */ public function addClassmap(array $classmap) { $this->classmap = array_merge($this->classmap, array_change_key_case($classmap)); } /** * Includet die Datei, die die Klassendefinition enthält. * @param string Name der Klasse, die geladen werden soll. */ protected function loadClass($class_name) { $class_name = strtolower($class_name); if(isset($this->classmap[$class_name])) include $this->classmap[$class_name]; } } ?>

preferences:
54 ms | 402 KiB | 5 Q