OOP mit PHP5 - Einstiegstutorial 3 - Nutzung der Klassen
1. Die Abschnitte
- Einführung
- Die MySQL-Klasse Teil 1
- Die MySQL-Klasse Teil 2
- Die MySQL-Klasse Teil 3
- Die Abstract-Klasse Teil 1
- Die Abstract-Klasse Teil 2
- Nutzung der Klassen
2. Sinn und Zweck
.. des ganzen werde ich euch nun anhand der tutorial_3.php
erläutern. Denn was nun kommt, ist recht erstaunlich. Vor allem,
wenn man bedenkt, wie klein der Code ist. Der sieht nämlich so aus.
<?php
...
function __autoload($class)
{
require 'class/'.$class.'.class.php';
}
$abstract = new AbstractSQL ('host','user','passwort','meine_db');
$query = "Hier kommt eure Abfrage hinein";
$res = $abstract -> checkQuery ($query);
?>
__autoload
Das ist meiner Meinung nach die beste Änderung, die in PHP5 vollzogen wurde. Damit kann man sich wunderbar diese nervigen
require
- und include
-Orgien vergangener Tage ersparen. Diese Funktion wird automatisch(!) aufgerufen,
sobald ein Objekt einer Klasse erzeugt wird.
Funktionsprinzip
Mit $abstract = new AbstractSQL ('host','user','passwort','meine_db');
erzeugen wir ein Objekt der Klasse
AbstractSQL
. Da diese aber noch nicht verfügbar ist, schaut unsere Funktion __autoload
, ob im Ordner
class
eine Datei vorhanden ist, die genau so heißt, wie der Name der Klasse plus der Endung .class.php
.
Da wir in dieser Kindklasse aber auch noch eine Elternklasse namens MySQL
eingebunden haben, schaut __autoload
auch noch nach, ob eine Datei namens MySQL.class.php
im Ordner class
existiert. Wenn dem so ist, so wird auch
die eingebunden.
Es kommt noch besser
Da wir in der Klasse AbstractSQL
eine eigene Exception namens dataexception
eingebaut haben, sucht unsere
Wunderfunktion __autoload
im Bedarfsfall(!) auch nach der entsprechenden Datei dataexception.class.php
im
Ordner class
und bindet die ebenfalls ein.
Was aber, wenn ...?
... eine der benötigten Dateien nicht existiert? Probiert es mal aus. Dann werdet ihr die entsprechende Fehlermeldung schon zu Gesicht bekommen.
3. Die Verarbeitung von $res
Das macht ihr mal schön selber. Diese Grundlagen solltet ihr mittlerweile im Schlaf beherrschen.
Noch ein Tipp
Spielt mal ein wenig mit den Abfragen herum. Arbeitet mit syntaktisch falschen, mit unlogischen oder fehlerhaften SQL-Abfragen. Dann werdet ihr schon selber sehen, was passiert. Bei Fragen, Kommentaren oder Anregungen könnt ihr mir wie gehabt eine Mail schicken.
4. Fazit
In diesem Einstiegstutorial habe ich euch die grundlegenden Prinzipien der Vererbung gezeigt und was das __autoload
bewirkt.
Mehr nicht(!). Glaubt also bitte nicht, dass man in realen Projekten so vorgeht. Nein, das hier dient nur der Anschauung.