Hauptmenü

Untermenü

OOP mit PHP5 - Einstiegstutorial 3 - Nutzung der Klassen

1. Die Abschnitte

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.

zurück zum vorherigen Abschnitt