borisbaer: Generierung von Properties zur Handhabung von POST-Daten

Beitrag lesen

Hallo T-Rex,

Deshalb würde ich IMMER get/set verwenden um etwas in ein Objekt zu bekommen. Denn wenn du dich jetzt fragst wo wird das aufgerufen, haust du einfach ein "backtrace" in den Code und schaust nach. Eventuell willst du auch mehr machen so z.B. nicht nur das Passwort übergeben sondern innerhalb der set-Methode auch gleich das Passwort verschlüsseln. Das geht auch Problemlos. Sprich der Code ist erweiterbar.

ja, Getter und Setter sind vor dem Hintergrund sicher eine sehr gute Sache, blähen aber auch ein wenig die Klasse auf, nicht? Wenn jede Property ihren eigenen Getter und Setter benötigt?

Das wäre wie Version 2 nur im Konstruktor. Hier hatte ich öfters das Problem, dass bevor ich etwas im Konstruktor gesetzt habe ich noch eine Logik "vorher" haben möchte. Sprich, ein setzen vor dem Konstruktor. Deshalb bin ich kein Freund von zu großer Logik im Konstruktor. Wichtige Dinge ja, große Berechnungen auf keinen Fall. Hier tendiere ich zu einem setzen der Werte via Konstruktor (sofern diese zwingend benötigt werden) und einem Aufrufen einer Methode für die Logik z.B. init().

Ich passe den Code in der Regel erst dann den Bedürfnissen an, wenn sich diese auch ergeben. Ich mache es selten so, dass ich allein wegen der Möglichkeit Code „auseinanderreiße“. Wenn ich merke oder manchmal schon vorher weiß, dass ich eine Logik mehrmals benötige, dann kopple ich diese natürlich aus, um mich nicht zu wiederholen. Aber eben immer erst dann. Ansonsten tendiere ich dazu, alles an einem Platz zu haben. Ich mache mir damit sicher mehr Arbeit als nötig, aber ich persönlich bin kein großer Freund davon, den Code „aufzublähen“, um für alle zukünftigen Anforderungen gewappnet zu sein. Vielleicht ändere ich meine Meinung dazu ja.

Hier nochmal meine "Ideallösung" im Ganzen:

public function setMail( $strMail )
{
   $this->strMail = $strMail;
   return $this;
}

public function getMail()
{
   return $this->strMail;
}

public function setData( $arData )
{
  if( isset($arData["mail"]) )
  {
     $this->setMail( $arData["mail"] );
  }
}

public function init()
{
//--- mach irgendwas
}

Kann natürlich alles noch durch Typisierung erweitert werden. Da bin ich aber gar kein so großer Freund von.

Danke für den Input, T-Senf! 😉

Grüße
Boris