PHP Class Autoloading mit Pear Namens Konvention (Yomm Part 1)
PHP Klassen mit der Pear Namens Konvention Laden! Sehr Praktisch und Speed optimierend. (Yomm Framework Part 1)
Es ist unschön, ineffizient und verbraucht unnötige Ressourcen wenn man "von Hand" alle PHP Klassen Files included, auch wenn man diese später im Script vielleicht gar nicht benötigt.
Klassen einzeln Einbinden:
include("abc.class.php");
include("xyz.class.php");
include("library/helloworld.class.php");
Nun werden alle 3 Klassen geladen auch wenn diese im Script vielleicht nicht benutzt werden.
Viel einfacher geht es mit der SPL_AUTOLOAD_REGISTER Funktion, gepaart mit der "Pearl Naming Convention"; Kurz: eine Funktion die das Laden der benötigten Klassen übernimmt, welche in einer bestimmten Hierarchie abgelegt wurden. Diese Funktion wird zbsp. im index.php abgelegt:
function YommAutoLoader($class)
{
require_once(str_replace('_', DIRECTORY_SEPARATOR, $class) . '.php');
}
spl_autload_register("YommAutoLoader");
(Die Funktion sollte man noch um einige Sachen erweitern wie zbsp. das Prüfen ob die Klasse und File überhaupt existieren.)
Wie funktioniert das ganze:
Die Klassen verfügen über den vollen Pfad als Class Name, zbsp. "Class Yomm_Db_Query {}" diese Datei liegt also im Ordner Yomm/Db und hat den Namen Query.php. (Die Pearl Namens Konvention) So kann man nun im PHP Code ganz einfach folgendes Ausführen:
$obj = new Yomm_Db_Query();
print_r($obj);
So einfach hat man ein dynamisches class loading über mehrere Ordner verteilt. Diese Technik wird übrigens von einigen grossen Frameworks verwendet.
Letzte Beitrag änderung am 23.03.2011 um 14:22 Uhr
Fragen zum Script, einen Fehler melden oder eine wichtige ergänzung mitteilen? Kontaktieren Sie uns einfach.






Hochwertige, handgemachte Produkte für den Tisch und die Küche
PHP Lab - Gratis und Hilfreich für Jedermann!