PHP: Method-Chaining

Jeder, der in PHP auch nur rudimentär mit Klassen und Objekten arbeitet, kennt solche Aufrufe.

Aufgerufen wird die Klasse nach dem bekannten Schema.

Langweilig! Wirklich intuitiv zu lesen sind diese Ketten von Methodenaufrufen nicht.
Abhilfe kann hier das Method-Chaining (Chaining = Verkettung) schaffen. Hierfür müssen wir im ersten Schritt unsere Klasse etwas umbauen.

Da nun jede der Methoden nicht einfach nur ausgeführt wird sondern die Instanz der Klasse zurückgibt können wir den Aufruf auch wie folgt schreiben.

Das lässt sich doch schon sehr viel besser lesen oder? Aus diesem Grund spricht man hierbei auch vom „Fluent Interfaces“, da man so annähernd in Form von Sätzen wie in der natürlicher Sprache programmieren kann. Zur besseren Lesbarkeit kann man die einzelnen Methoden auch untereinander schreiben, wenn man mag.

Auf diese Weise kann man mit dem Method-Chaining besser lesbaren Code erzeugen, der dem natürlichen Satzbau schon sehr nahekommt. Damit werden viele Anwendungsfälle, wie beispielsweise die nachfolgende Datenbankabfrage, schneller verständlich.

Die Vorteile, die uns das Method-Chaining bietet liegen somit auf der Hand:

  1. Durch die bessere Lesbarkeit entfällt ein Teil der notwendigen Dokumentation.
  2. Dank des satzähnlichen Aufbaus bekommt man schneller eine Vorstellung von der Verwendung und dem Gebrauch der einzelnen Methoden.

Diese Art der Programmierung bringt aber auch Nachteile mit sich, die vorher bekannt sein sollten und berücksichtigt werden wollen:

  1. Die Methoden müssen nicht in der gezeigten Reihenfolge aufgerufen werden. Das erschwert zum Einen die Programmierung der Klasse als auch das Abfangen von Fehlern, wenn die Methoden nicht wie geplant verwendet werden.
  2. Die langen Ketten von aufeinander aufbauenden Methoden erschweren das Debugging.