PHP-Anwendungen durch OOP-Verfahren optimieren

Die meisten Entwickler sind der Ansicht, dass objektorientiertes Programmieren (OOP) und PHP sich gegenseitig ausschließen. Doch in Wirklichkeit bietet PHP alle Funktionalitäten, mit denen Entwickler gezielt OOP-Verfahren in ihren Anwendungen einsetzen können.

Der Ansatz, wie objektorientiertes Programmieren in Verbindung mit PHP realisiert werden kann, wird hier am Beispiel eines Fahrzeugs als PHP-Klasse beschrieben:



Innerhalb der neuen Fahrzeug-Klasse verknüpfen Methoden (PHP-Funktionen) die Anwendungen mit den Merkmalen des Fahrzeugs. Jede dieser Methoden dient zur Beschreibung der Fahrzeug-Klasse für die Anwendung, so dass sich diese auf sinnvolle Weise einsetzen lässt. Hierzu das folgende Beispiel (das natürlich nicht funktional ist):



Dies ergibt also eine Reihe von ‚Treffern‘. Wenn hier alles vertraut aussieht, liegt das daran, dass die OOP-Funktionalität von PHP der von C oder Java stark ähnelt. Die eigentliche Herausforderung besteht jedoch in ihrer sinnvollen Nutzung unter umfassender und effizienter Verwendung der Verkapselung.

Um herauszufinden, was über das Fahrzeug bekannt sein muss, um es in eine Anwendung zu integrieren, kann die Definition der Basiselemente eines Fahrzeugs hilfreich sein. Beispielsweise können Fahrzeuge nach der Anzahl ihrer Türen oder Räder geordnet werden.

Um zu bestimmen, wie viele Räder ein Fahrzeug hat, benötigt man eine Methode, die diese Information liefert. In PHP könnte man dazu wie in Listing A dargestellt vorgehen.

Die hier verwendete Fahrzeug-Klasse enthält eine Methode namens „zeigeRäder“, welche die Anzahl der Räder ausgibt, wenn von der Anwendung ein Fahrzeugtyp angegeben wird. Wie lässt sich diese Information nun an die Fahrzeug-Klasse weitergeben? Zum besseren Verständnis hierzu einige praktische Beispiele, bei denen die Klasse implementiert und deren „zeigeRäder“-Methode aufgerufen wird, um die Anzahl der Räder eines Fahrzeugs vom Typ Auto zu ermitteln:



Der Typ des zu erstellenden Fahrzeugs wurde also als Auto deklariert. Da mit PHP gearbeitet wird, könnte dieser Wert dynamisch sein; um das Verfahren abzukürzen, wird er hier jedoch hart codiert.

Um die Klasse verwenden zu können, gilt es zunächst eine Instanz der Klasse in der Anwendung zu erstellen:



Es wurde eine Instanz von Fahrzeug erstellt, die „mein Fahrzeug“ heißt. Diese stellt eine eindeutige Instanz der Fahrzeug-Klasse dar und enthält sämtliche in Fahrzeug verfügbaren Daten (Methoden und Eigenschaften).

Jetzt kann festgestellt werden, wie viele Räder das Fahrzeug besitzt:



Wie man sieht, wurde die „zeigeRäder“-Methode von „meinFahrzeug“ aufgerufen und ihr der Fahrzeugtyp mitgeteilt. Wenn alles ordnungsgemäß verläuft, werden die benötigten Daten ausgegeben:



Möchte man die Anzahl der Türen ermitteln, muss man eine weitere Methode schreiben, die die Anzahl der Türen abfragt, wie in Listing B dargestellt.

Einfache Programmierung, einfache Pflege
Wie aus diesem einfachen Beispiel hervorgeht, ist objektorientiertes Programmieren in PHP gar nicht so schwierig. Mit dem Einsatz von OOP-Verfahren und Klassen, wie in der gezeigten Fahrzeug-Klasse demonstriert, ließe sich ohne großen Aufwand auch ein OOP-Einkaufswagen erstellen, der aus Klassen besteht, die der Fahrzeug-Klasse ähneln. Aufgrund seiner objektorientierten Beschaffenheit wäre der entstehende Code einfach zu lesen, zu pflegen und zu skalieren.

In Listing C ist die ausführlichere Version des Codes der hier vorgestellten Anwendung zur Einordnung von Fahrzeugen zu sehen. An dieser lassen sich die objektorientierten Fähigkeiten von PHP gut erkennen.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

ZDNet für mobile Geräte
ZDNet-App für Android herunterladen Lesen Sie ZDNet-Artikel in Google Currents ZDNet-App für iOS

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu PHP-Anwendungen durch OOP-Verfahren optimieren

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *