PHP QuickTip: Autloading – (1)

27. März 2006

In der Kategorie „PHP QuickTip“ möchte ich kleine Tipps für den Alltag mit PHP geben. Das heutige Thema: Autoloading. Möchte man in PHP objektorientiert programmieren, so bietet es sich an die Klassen in seperaten Dateien anzulegen. Der Nachteil dabei ist, dass man dann gezwungen ist in den PHP-Dateien in denen man die Klassen benutzen möchte lange Zeilen mit include-Anweisungen einfügen muss. Dabei kann Autoloading helfen: Eine Autoload-Funktion läd, falls nötig, die Klassendefinition automatisch bei Objekterzeugung einmalig ein.

Quelltext:

<?php

function __autoload($class) {
require_once(‚include/‘.strtolower($class).‚.class.php‘);
}

$obj1 = new House();
$obj2 = new Car();
$obj3 = new Tree();

?>

Im Skript sollen 3 Objekte der Klassen House, Car und Tree erzeugt werden. Die Klassen wurden bisher nicht erzeugt und PHP selbst hat keine Ahnung wo die entsprechenden Definitionen liegen. Ist wie oben eine __autoload()-Funktion definiert wird diese bei Objekterzeugung aufgerufen, wenn die Klasse nicht bekannt ist. Im Beispiel lädt PHP die Dateien klassenname.class.php aus dem Ordner include, also house.class.php, car.class.php und tree.class.php. Die Funktion strtolower() sorgt hier dafür, dass die Klassennamen in Kleinschreibung vorliegen, da u.a. bei Linux- und Unixsystemen nach Klein- und Großschreibung bei Dateien unterschieden wird.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: