Ich habe in meinen Webprojekten immer mehrere Klassen im Einsatz. Gerne erstelle ich auch eine neue Klasse, welche eine andere abstrahiert. Mein “Problem” in der index.php häufen sich die
require-Zeilen. Gestern bin ich über die Autoload-Funktion von PHP5 gestolpert. Diese Funktion ermöglicht es, eine benötigte Klasse dynamisch zu laden bzw. in das Script einzubinden. Natürlich muss der Grundsatz “Eine Klasse, Eine Datei” eingehalten werden. Auch muss die Klasse gleich heissen wie das File bzw. das File muss gleich heissen wie die Klasse.
Hier mal ein Beispiel:
Ich alle meine Klassen sind im Ordner
classesabgelegt. Nun mache ich die automatischen Includes mit der flogenden Funktion in der index.php
function __autoload($class) {
require_once('./classes/'.$class.'.class.php');
}
Diese Funktion wird jedesmal aufgerufen wenn eine Klasse benötigt wird. Sei es wenn ein Objekt instanziert wird oder wenn eine statische Methode aufgerufen wird. Wenn ich also z.b die das Objek
$automit der Klasse
Autoinstanziere, wird das File
./classes/Auto.class.phpincludiert.