dedlfix: Konzeptionelles zu Funktionen

Beitrag lesen

echo $begrüßung;

Ich probier auch mal eine Antwort :-)

Mein Problem: Ich sehe in der Nutzung von Klassen keinen Sinn. Mir fallen in einem typischen PHP Webumfeld einfach keine Vorteile ein.

Objekte war unter PHP 4 eine nette Dreingabe, aber ansonsten nicht besonders mit PHP verstrickt. dir war wohl die einzige Klasse, die einem Wald- und Wiesen-PHP-Programmierer gelegentlich über den Weg lief. Und auch diese Begegnung konnte man meiden, gab es doch alle Methoden von dir auch als normale Funktionen.

Unter PHP 5 wurde das Objekt-Modell verbessert und es gibt ein paar mehr Ansätze, PHP-Funktionalitäten auch oder ausschließlich objektorientiert anzubieten. Beispiele sind SimpleXML, die MySQL Improved Extension (mysqli) und das PHP Data Objects (PDO) interface. Der große Rest ist funktional geblieben. Es gibt beispielsweise keine String-Klasse, die alle String-Funktionen als Methoden anbietet und auch keine ebensolche Array-Klasse. Und das wird auf absehbare Zeit (PHP 6) auch so bleiben.

Worin liegt der große Vorteil den OOP bietet? Es ist die Kapselung von Daten und Funktionalität zu einer Einheit, sprich: einem Objekt. Und das ist auch in meinen Augen der Hauptvorteil, der sich dem PHP-Programmierer bietet. Diesen Vorteil lernt man dann schätzen, wenn Projekte größer werden. Dann hat man unter Umständen das Problem, die Übersicht zu behalten. Hat man eine Variable an einer Stelle verwendet, ist es ungünstig, wenn man sie an anderer Stelle nochmal verwendet und damit das andere Vorkommen ungewollt beeinflusst. Funktionen zu verwenden ist eine Möglichkeit, den globalen Variablenspeicher zu entlasten.

Mitunter hat man mehrere Funktionen, die sich mit dem gleichen Thema beschäftigen und gegenseitig Daten benötigen, die aber an anderen Stellen nicht gebraucht werden. Diese Daten liegen dann meist "ungeschützt" global herum. An der Stelle bietet ein Objekt die Möglichkeit, die Daten und Funktionen zusammenzufassen, und das Programm wird wieder etwas aufgeräumter.

Anwendungsmöglichkeiten für Objekte unter PHP ergeben sich also da, wo Funktionalitäten umfangreicher sind und möglichst wenig von der Umgebung beinflusst/beeinträchtigt werden sollen. Vorwiegend trifft das für die Teile zu, die im Hintergrund die Arbeit erledigen. Datenbankzugriff dürfte das prominenteste Beispiel sein. Weitere Anwendungsmöglichkeiten kann man in PEAR finden (siehe PEAR-Manual-Kapitel Packages). PEAR ist ein komplett objektorientiertes Framework für PHP und enthält schon jede Menge Lösungen für alle möglichen und unmöglichen Probleme. Und damit sich diese Lösungen nicht gegenseitig in Quere kommen sind sie zum einen in jeweils eine oder mehrere Klassen aufgeteilt, und zum anderen wird durch ein Verzeichnis- und Benennungsschema für eindeutige Klassennamen gesorgt.

echo "$verabschiedung $name";