![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Der Student Registriert seit: 03.01.2007 Ort: München
Beiträge: 86
| Method chaining Einleitung Das folgende Tutorial handelt vom so genannten "Method chaining". Das Tutorial richtet sich an alle PHP Nutzer die bereits mit Klassen gearbeitet haben. Method chaining funktioniert nur mit PHP5! Nun was bedeutet Method chaining überhaupt? Eine "Method" ist eine Methode einer Klasse. Nur zur kurzen Info: eine einfache function() in PHP nennt sich Funktion. Eine function() in einer Klasse wird Methode genannt. "chaining" bedeutet übersetzt Verkettung. Method chaining ist also das verketten von Methoden. normale Anwedung von Methoden Erstmal möchte ich ein Beispiel bringen wie Methode normalerweise angewendet werden. PHP-Code: Code: My Name is Flo! And I am 21 years old! Anwendung von Method chaining Folgendes Beispiel ist genau die selbe Situation allerdings verwende ich hier Method chaining. PHP-Code: Code: My Name is Flo! And I am 21 years old! Doch warum können wir diese Methoden hintereinander aufrufen? Ein Aufruf funktioniert so: $object->method(); Wir haben ein Objekt und wir rufen eine Methode dieses Objekts auf. Der Rückgabewert wird durch return in der Methode definiert. Das kann z.B. ein String, ein Integer oder ein Array sein. Oder, wie im ersten Beispiel, kann auch nichts zurückgegeben werden. Man könnte sich vorstellen das bei folgendem Aufruf $x = $number->getValue(); eine Zahl zurück gegeben wird und dann $x = 5; da steht! 5 ist also der Rückgabewert der aus $number->getValue() kommt. Daher definiere ich jetzt $object->method() als "Rückgabewert". Im zweiten Beispiel rufen wir für den Rückgabewert nochmal eine zweite Methode auf. Rückgabewert->method2(); Wie gesagt kann z.B. der Rückgabewert ein String sein. Aber auf einen String können wir keine Methode aufrufen. Deshalb brauchen wir wieder ein Objekt. Wir geben also mit return einfach das Objekt selbst zurück auf das wir die Methode angewendet haben. PHP-Code: Um Method chaining zu nutzen muss also nur return $this; in die Methoden die aneinander gekettet werden sollen. Die letzte Methode die aufgerufen wird sollte dann das Ergebnis verwerten. Also z.B. eine Ausgabe machen, einen Wert zurück geben oder etwas speichern. Eine weitere Frage die ich mir stelle, wird das Objekt $person nur von der Methode verändert die als erstes Aufgerufen wird oder verändern die weiteren Methoden auch das Objekt? Wie im ersten Beispiel verändern alle Methoden das Objekt $person! Hier noch ein kurzes Beispiel mit der zweiten Klasse die Method chaining verwendet! PHP-Code: Code: My Name is Flo! And I am 21 years old! My Name is Julia! And I am 21 years old! Anwendungsgebiete Jetzt wissen wir was Method Chaining ist und wie es funktioniert. Doch wofür können wir es sinnvoll einsetzen? Hier möchte ich noch zwei Beispiele aufzeigen bei dennen man Method chaining nutzen kann. Datenbank Möglich wäre eine Klasse zu erstellen die Datenbank Querys generiert. Dies hat den Vorteil dass man einfach von einem Datenbanksystem auf ein anderes wechseln kann. Es muss dann nur die Klasse die die Querys generiert bearbeitet werden, alle Datenbankabfragen im Quellcode, die über diese Klasse abgehandelt werden, können so bestehen bleiben wie sie sind und müssen nicht extra bearbeitet werden. PHP-Code: Die Methode execute() fügt den Query zusammen und schickt ihn an die Datenbank und gibt das Resultat zurück. Auf die Klasse selber verzichte ich in diesem Beispiel da es doch eine recht komplexe Angelegenheit ist ein Query richtig zu generieren und alle Möglichkeiten einzubauen. Validierung Um z.B. Formulareingaben zu überprüfen könnte man eine Klasse schreiben die die Validierung vornimmt. PHP-Code: Eine Klasse zur Validierung könnte so aussehen. PHP-Code: Schluss Method chaining ist also eine interessant Art wie man mit Methoden umgehen kann. Bei sinnvoller Verwendung kann es so die Lesbarkeit erhöhen und den Aufwand für den Programmierer senken. Ein Beispiel wo Method chaining viel eingesetzt wird wäre das Ich würde mich freuen wenn ihr ein paar Kommentare zu diesem Tutorial schreibt. Kritik ist willkommen! Aus Übersichtsgründen habe ich auf große Fehlerbehandlungen verzichtet, dies obliegt dem Nutzer. Viel Spass Flor1an Geändert von Flor1an (21.05.2008 um 16:19 Uhr). |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Referenz auf ein Array ohne mein Wissen? | ex³ | PHP-Programmierung | 5 | 12.09.2007 18:57 |
| Frage zum Tut: [PHP] Fremde Webseiten auslesen | the_cRu | PHP-Programmierung | 27 | 10.02.2007 19:59 |
| [PHP] Eine Einführung in die Rekursion | Jojo | Tutorials | 8 | 11.03.2006 22:11 |
| [PHP] Ein einfaches Template-System | MrNiceGuy | Tutorials | 0 | 09.10.2005 18:30 |
| Drag and Drop? | Java17 | Desktop-Applikationen und Grafik | 15 | 05.05.2005 10:59 |