V. 8.7 (27.03.2012)

Infos

Download

Theorie OOP PHP5

Beispiele

Beispiele

Schnellsuche

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;

weiter zum nächsten Abschnitt