Hauptmenü

Untermenü

OOP PHP5 - Techniken - Methodenverkettung

1. Einführung

Hierbei handelt es sich nicht um eine gaaaanz tolle neue Erfindung, sondern nur um eine alternative Schreibweise. Da die aber mittlerweile sehr weit verbreitet ist, zeige ich sie euch mal. In diesem wieder mal sehr seltsamen Beispiel beschäftigen wir uns mit einen Rendezvous-Objekt, in dem es verschiedene Methoden gibt, um das zu organisieren. Das könnte zum Beispiel so aussehen.


class Rendezvous
{
  private $reserviert;
  private $essen;
  private $getraenk;
  private $geiger;
  public function reservierTisch ($value)
  {
    $this -> reserviert $value;
  }
  public function waehlEssen ($value)
  {
    $this -> essen $value;
  }
  public function bestellGetraenk ($value)
  {
    $this -> getraenk $value;
  }
  public function orderGeiger ($value)
  {
    $this -> geiger $value;
  }
}

2. Die übliche Vorgehensweise

... sieht dann so aus.


$rendezvous = new Rendezvous;
$rendezvous -> reservierTisch(true);
$rendezvous -> waehlEssen('Peking-Ente');
$rendezvous -> bestellGetraenk('Pflaumen-Schnaps');
$rendezvous -> orderGeiger(true);
print_r($rendezvous);

Ein Hinweis am Rande. Lasst bloß die Finger von chinesischem Pflaumen-Schnaps. Das ist ein Teufelsgebräu!

3. Methodenverkettung

Bei dieser Schreibweise ruft man alle Methoden einfach hintereinander auf. Dadurch spart man sich ein wenig Tipparbeit.


$rendezvous = new Rendezvous();
$rendezvous -> reservierTisch(true)
            -> waehlEssen('Peking-Ente')
            -> bestellGetraenk('Pflaumen-Schnaps')
            -> orderGeiger(true);

Aber!

Was man sich vorher eingespart hat, muss man nun an anderer Stelle wieder drauflegen. Denn das funktioniert nur, wenn in allen aufgerufenen Methoden das Objekt zurückgegeben wird. Darum muss man überall noch das hier in die Methoden einfügen.


return $this;

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt