hotti: Getter und Setter

Beitrag lesen

hi,

Wenn es die Übersichtlichkeit/Wartbarkeit des Codes erhöht, würde ich einen solch geringen Performance-Verlust in jedem Fall in Kauf nehmen. Allerdings gebe ich zu, dass man über die Frage, ob durch den Einsatz von Gettern/Settern tatsächlich die Übersichtlichkeit erhöht wird, sicher vortrefflich streiten kann.

Ja ;)

Hier eine meiner Ideen:

  • Ein Argument   => Methode ist ein Getter
  • Zwei Argumente => Methode ist ein Setter

Methode 'eav': Entity (Response), Attribute, Value

  
// $this ist die Instanz der Controller-Klasse (Response Class in meinem FW)  
$this->eav('title');                                   // gib mir mal den Titel  
$this->eav('title', 'Neuer Titel für die Seite');      // geht zur Laufzeit  
$this->eav('title', $this->eav('title')." Anhängsel"); // geht auch  

In Java ist es eine Konvention mangels besserer Möglichkeiten dieser Sprache. Es gibt einige Frameworks/whatever, die auf die Benennung get.../set... reagieren oder anderweitig darauf angewiesen sind, um richtig zu funktionieren. Diese Notwendigkeit ist mir von PHP her nicht bekannt.

Zuviel Voodo ;) Ein Kollege sagte mal: Einen Getter/Setter würde ich niemals einen Namen geben, der mit get/set anfängt...

Naja, Symfony2 nutzt z.b. diese Mechanismen sehr exzessiv (sowohl in der Datenbankschicht, also der "Doctrine"-Welt, als auch bei der Template-Engine Twig). Ich mag mich täuschen, aber ich glaube bei Zend gibt es auch solche Konventionen.

...dabei ging es um Magento (Zend).

Ich finde, jeder darf die Magic-Methods sooo mißbrauchen, wie er das für gut befindet. PHP __call() missbrauche ich z.B. für Methoden, die aufgrund ihrer Zeilenzahl die Code-Struktur einer Controller-Klasse optisch versauen würden: Ab damit ins Dateisystem ;)

Hotti