Loading…
PHP Tutorial - Klassen automatisch einbinden

PHP Tutorial: Klassen automatisch einbinden

Wenn es in PHP um komplexere Anwendungen geht, dann empfiehlt es sich objektorientiert mit Klassen zu arbeiten.

Eine Mühsame Arbeit ist aber das ständige einbinden der benötigten Klassen in jeder Datei, dazu gibt es aber von PHP einen Autoloader.

Methode 1

Alle Klassen liegen in einem einzigen Ordner namens classes.

Hier ein Screenshot zur Veranschaulichung:

PHP Klassen

Du erstellst eine Funktion, ich nenne diese classAutoloader($class).

Wenn du jetzt auf eine Klasse instanziierst, dann übergibt spl_autoload_register den Namen automatisch an deine Autoloader-Funktion weiter und deine Funktion setzt den Dateipfad zusammen und speichert ihn in der Variable $path.

Mit der if-Abfrage wird überprüft ob es diese Klasse tatsächlich auch gibt, wenn ja, dann wird mit require die Datei eingebunden.

Wichtig: das ganze System setzt voraus, dass du den selben Namen für die Klasse sowie für die PHP-Datei in der sich die Klasse befindet verwendest, auch auf Groß- und Kleinbuchstaben achten.

Methode 2

Wenn du Dateinamen der Klassen mehrfach verwenden willst, dann gibt es die Möglichkeit die Klassen in Unterordnern zu packen, dazu muss aber die Autoloader-Klasse etwas verändert werden.

Hier ein Screenshot der Ordner- und Dateienstruktur, damit du siehst was ich meine:

PHP Klassen

Mit dieser Ordnerstruktur kannst du dein Projekt etwas übersichtlicher strukturieren.

Um in der index.php die Klasse Setting aus dem Ordner User zu laden muss diese folgendermaßen benannt werden:

Inhalt der Datei Settings.php aus dem Ordner User:

In der Datei Settings.php aus dem Ordner classes:

Die Autoloader-Klasse sieht dann so aus:

Der Unterstrich zwischen User und Settings im Klassennamen ist die Trennung, die in der Autoloader-Klasse mit explode genommen wird, es kann auch ein anderes Zeichen genommen werden.

Die Variable $classPath fügt den Dateipfad zusammen und trennt die Wörter die zuvor getrennt wurden mit einem /.

Die Variable $path fügt am Anfang noch den Ordnernamen in dem alle Klassen enthalten sind hinzu, dann die Variable $classPath und zum Schluss .php um einen korrekten Pfad zu einer Datei zu bekommen.

Schreibe einen Kommentar

*