<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare zu: Setter sind keine getter &#8230; auch symfony macht mal Fehler</title>
	<atom:link href="http://www.phphatesme.com/blog/wtf/setter-sind-keine-getter-auch-symfony-macht-mal-fehler/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phphatesme.com/blog/wtf/setter-sind-keine-getter-auch-symfony-macht-mal-fehler/</link>
	<description>PhpHatesMe, but that&#039;s ok!</description>
	<lastBuildDate>Mon, 06 Feb 2012 20:59:49 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Von: Patrick</title>
		<link>http://www.phphatesme.com/blog/wtf/setter-sind-keine-getter-auch-symfony-macht-mal-fehler/comment-page-1/#comment-56042</link>
		<dc:creator>Patrick</dc:creator>
		<pubDate>Mon, 21 Feb 2011 23:50:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3339#comment-56042</guid>
		<description>Vielen Danke, genau das, was ich gerade gesucht habe. Von JQuery z.B. kennt man ja, dass Methoden Get [ $element.val() ] und Set $element.val(&#039;value&#039;) ] ist. Finde ich eigentlich ziemlich cool und ist auch nicht schwer, in den Funktionen selber zu bauen. Spart sogar ein bisschen Code. Da ich das aber noch nie bei anderen in PHP gesehen habe, wollte ich mal rumschauen, was so Standards sind. 

Ich geh nach lesen des Posts mal davon aus, dass zwei Funktionen besser sind als


&lt;code&gt;
$this-&gt;Value($value) {
   if ( $value === null ) {
      return $this-&gt;Something;
   } else {
      $this-&gt;Something = $value;
   }
&lt;/code&gt;


Also, vielen Dank :)</description>
		<content:encoded><![CDATA[<p>Vielen Danke, genau das, was ich gerade gesucht habe. Von JQuery z.B. kennt man ja, dass Methoden Get [ $element.val() ] und Set $element.val(&#8216;value&#8217;) ] ist. Finde ich eigentlich ziemlich cool und ist auch nicht schwer, in den Funktionen selber zu bauen. Spart sogar ein bisschen Code. Da ich das aber noch nie bei anderen in PHP gesehen habe, wollte ich mal rumschauen, was so Standards sind. </p>
<p>Ich geh nach lesen des Posts mal davon aus, dass zwei Funktionen besser sind als</p>
<p><code><br />
$this-&gt;Value($value) {<br />
   if ( $value === null ) {<br />
      return $this-&gt;Something;<br />
   } else {<br />
      $this-&gt;Something = $value;<br />
   }<br />
</code></p>
<p>Also, vielen Dank <img src='http://www.phphatesme.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: DonZampano</title>
		<link>http://www.phphatesme.com/blog/wtf/setter-sind-keine-getter-auch-symfony-macht-mal-fehler/comment-page-1/#comment-45925</link>
		<dc:creator>DonZampano</dc:creator>
		<pubDate>Wed, 21 Jul 2010 10:44:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3339#comment-45925</guid>
		<description>Als Verfechter der Meinung, daß fast alle getter/setter Antipatterns sind, ein gefundenes Fressen hier :)

Vorab, auch in .NET gibt es etwas Ähnliches:

///  Gets or sets the username of the customer. /// 
[Property(Unique=true, NotNull=true)]
public string Username { get; set; }

Also prinzipiell nichts ungewöhnliches oder fieses. Man sollte es aber auch nicht übertreiben.

Man sollte sich eher fragen, warum es die Methoden get/setStreet, get/setZipcode, get/setCity überhaut gibt. 
Anstatt $user-&gt;address() oder create/changeAddress($street, $zip, $city) oder noch besser ..-&gt;changeAddress(Adress $adress)....

Für mich ist es eher ein Problem, daß Puristen tausende getter/setter schreiben, statt sich über die Intention von Klassen und Methoden oder vernünftige, in sich logische Klassen/Typen, wie z.B. eine Adresse, Gedanken zu machen.</description>
		<content:encoded><![CDATA[<p>Als Verfechter der Meinung, daß fast alle getter/setter Antipatterns sind, ein gefundenes Fressen hier <img src='http://www.phphatesme.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Vorab, auch in .NET gibt es etwas Ähnliches:</p>
<p>///  Gets or sets the username of the customer. ///<br />
[Property(Unique=true, NotNull=true)]<br />
public string Username { get; set; }</p>
<p>Also prinzipiell nichts ungewöhnliches oder fieses. Man sollte es aber auch nicht übertreiben.</p>
<p>Man sollte sich eher fragen, warum es die Methoden get/setStreet, get/setZipcode, get/setCity überhaut gibt.<br />
Anstatt $user-&gt;address() oder create/changeAddress($street, $zip, $city) oder noch besser ..-&gt;changeAddress(Adress $adress)&#8230;.</p>
<p>Für mich ist es eher ein Problem, daß Puristen tausende getter/setter schreiben, statt sich über die Intention von Klassen und Methoden oder vernünftige, in sich logische Klassen/Typen, wie z.B. eine Adresse, Gedanken zu machen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Egga</title>
		<link>http://www.phphatesme.com/blog/wtf/setter-sind-keine-getter-auch-symfony-macht-mal-fehler/comment-page-1/#comment-45914</link>
		<dc:creator>Egga</dc:creator>
		<pubDate>Wed, 21 Jul 2010 06:37:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3339#comment-45914</guid>
		<description>Hi!

Bin zwar etwas spät dran (der Link &quot;Vor einem Jahr&quot; hat mich hergeführt), habe trotzdem aber eine kleine Bemerkung zu dem Thema zu machen.

In Perl ist es durchaus üblich, Getter und Setter zusammen zu fassen. Nicht überall, aber doch immer mal wieder, zB in einem weit verbreiteten ORM (DBIx::Class). Sicherlich sollte es dann in einem Projekt durchgängig verwendet werden, was meiner Beobachtung nach auch so ist.

Es ist in dieser Sprache (aus technischen Gründen) sehr unschön, die Attribute von außen anzusprechen, daher immer über Methoden (ist ja sowieso best practice).

Der Code wird dadurch meist nicht unübersichtlicher, da man üblicherweise dem Setter nur eine Zeile hinzufügt:
return $this-&gt;{value};
(OK und ein if, um den alten Wert nicht auf undef zu setzen).

Ist sicherlich erstmal gewöhnungsbedürftig. Bin auch wieder davon abgekommen, weil es meiner Meinung nach auch jede Methode eine bestimmte Funktion - und eben nur eine - haben sollte.

Viele Grüße</description>
		<content:encoded><![CDATA[<p>Hi!</p>
<p>Bin zwar etwas spät dran (der Link &#8220;Vor einem Jahr&#8221; hat mich hergeführt), habe trotzdem aber eine kleine Bemerkung zu dem Thema zu machen.</p>
<p>In Perl ist es durchaus üblich, Getter und Setter zusammen zu fassen. Nicht überall, aber doch immer mal wieder, zB in einem weit verbreiteten ORM (DBIx::Class). Sicherlich sollte es dann in einem Projekt durchgängig verwendet werden, was meiner Beobachtung nach auch so ist.</p>
<p>Es ist in dieser Sprache (aus technischen Gründen) sehr unschön, die Attribute von außen anzusprechen, daher immer über Methoden (ist ja sowieso best practice).</p>
<p>Der Code wird dadurch meist nicht unübersichtlicher, da man üblicherweise dem Setter nur eine Zeile hinzufügt:<br />
return $this-&gt;{value};<br />
(OK und ein if, um den alten Wert nicht auf undef zu setzen).</p>
<p>Ist sicherlich erstmal gewöhnungsbedürftig. Bin auch wieder davon abgekommen, weil es meiner Meinung nach auch jede Methode eine bestimmte Funktion &#8211; und eben nur eine &#8211; haben sollte.</p>
<p>Viele Grüße</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: mittax</title>
		<link>http://www.phphatesme.com/blog/wtf/setter-sind-keine-getter-auch-symfony-macht-mal-fehler/comment-page-1/#comment-34026</link>
		<dc:creator>mittax</dc:creator>
		<pubDate>Mon, 27 Jul 2009 10:04:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3339#comment-34026</guid>
		<description>@KingCrunch 

THX....

Ich stehe gerade am Anfang und habe gerade einen Controller mit dem $_SESSION Zugriff verwendet.

Gibts gute Gründe auf die Zend-Session-Namespaces umzustellen, oder ist das nur so ein Zend-Standard ?

2) 
Die Rede ist von magic quotes? Magische Funktionen wie __call und __construct gibts noch nicht so lange, denke ich.

Die Quotes selbst sind ab 5.3 depricated, wie ich gerade lese.</description>
		<content:encoded><![CDATA[<p>@KingCrunch </p>
<p>THX&#8230;.</p>
<p>Ich stehe gerade am Anfang und habe gerade einen Controller mit dem $_SESSION Zugriff verwendet.</p>
<p>Gibts gute Gründe auf die Zend-Session-Namespaces umzustellen, oder ist das nur so ein Zend-Standard ?</p>
<p>2)<br />
Die Rede ist von magic quotes? Magische Funktionen wie __call und __construct gibts noch nicht so lange, denke ich.</p>
<p>Die Quotes selbst sind ab 5.3 depricated, wie ich gerade lese.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: KingCrunch</title>
		<link>http://www.phphatesme.com/blog/wtf/setter-sind-keine-getter-auch-symfony-macht-mal-fehler/comment-page-1/#comment-34024</link>
		<dc:creator>KingCrunch</dc:creator>
		<pubDate>Mon, 27 Jul 2009 09:45:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3339#comment-34024</guid>
		<description>@mittax:
Nö, solange man es konsequent so verwendet. Je nach Implementierung und Verwendung kann man die Komponente schon etwas durcheinander bringen, weshalb man sich schon auf &quot;entweder oder&quot; einigen sollte.

Das Problem mit Zend_Session kommt allerdings nicht vom Session-Handling, sondern von magischen Attributen und einem etwas merkwürdigen Verhalten in älteren PHP-Versionen. Soweit ich mich erinnere funktionierten magische Attribute, wenn sie noch nicht initialisiert waren, nur bei Zuweisung, nicht allerdings beim impliziten Casting, wie es bei der Array-Schreibweise vorkommt. Zumindest soweit ich mich erinner ;)</description>
		<content:encoded><![CDATA[<p>@mittax:<br />
Nö, solange man es konsequent so verwendet. Je nach Implementierung und Verwendung kann man die Komponente schon etwas durcheinander bringen, weshalb man sich schon auf &#8220;entweder oder&#8221; einigen sollte.</p>
<p>Das Problem mit Zend_Session kommt allerdings nicht vom Session-Handling, sondern von magischen Attributen und einem etwas merkwürdigen Verhalten in älteren PHP-Versionen. Soweit ich mich erinnere funktionierten magische Attribute, wenn sie noch nicht initialisiert waren, nur bei Zuweisung, nicht allerdings beim impliziten Casting, wie es bei der Array-Schreibweise vorkommt. Zumindest soweit ich mich erinner <img src='http://www.phphatesme.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: mittax</title>
		<link>http://www.phphatesme.com/blog/wtf/setter-sind-keine-getter-auch-symfony-macht-mal-fehler/comment-page-1/#comment-34006</link>
		<dc:creator>mittax</dc:creator>
		<pubDate>Sun, 26 Jul 2009 20:02:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3339#comment-34006</guid>
		<description>Ich denke Jörg hat mit Symphonie noch so seine Mühe. :-)

Aber:

Danke für den Post. 


Ich habe noch manchmal meine Schwierigkeiten getter und setter auseinanderzuhalten.

Nun bin ich ein Stück näher. Obwohl ich öfters auch hybriden verwende versuche ich Werte ich ich zurückbekommen möchte in getters zu packen und werte die ich der anwendung mitteilen will mit settern zu setzen.

Was das Zend_Session problem angeht. 

Ja die Namespaces sind eigendlich Sessionhandlings. Nur das hier Kollisionen vermieden werden.

Mir persönlich ist der Aufwand mit den namespaces noch zu hoch. Daher verwende ich weiter die Superglobals $_SESSION.

Ist ja nicht verboten oder?</description>
		<content:encoded><![CDATA[<p>Ich denke Jörg hat mit Symphonie noch so seine Mühe. <img src='http://www.phphatesme.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Aber:</p>
<p>Danke für den Post. </p>
<p>Ich habe noch manchmal meine Schwierigkeiten getter und setter auseinanderzuhalten.</p>
<p>Nun bin ich ein Stück näher. Obwohl ich öfters auch hybriden verwende versuche ich Werte ich ich zurückbekommen möchte in getters zu packen und werte die ich der anwendung mitteilen will mit settern zu setzen.</p>
<p>Was das Zend_Session problem angeht. </p>
<p>Ja die Namespaces sind eigendlich Sessionhandlings. Nur das hier Kollisionen vermieden werden.</p>
<p>Mir persönlich ist der Aufwand mit den namespaces noch zu hoch. Daher verwende ich weiter die Superglobals $_SESSION.</p>
<p>Ist ja nicht verboten oder?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: KingCrunch</title>
		<link>http://www.phphatesme.com/blog/wtf/setter-sind-keine-getter-auch-symfony-macht-mal-fehler/comment-page-1/#comment-33890</link>
		<dc:creator>KingCrunch</dc:creator>
		<pubDate>Thu, 23 Jul 2009 15:40:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=3339#comment-33890</guid>
		<description>Das mit dem Forum war so allgemein an alle Macher-Menschen hier. Reicht ja wirklich, wenn zu jeden Beitrag ein Thema erstellt wird, neue Themen nicht selbst erstellt werden können usw.</description>
		<content:encoded><![CDATA[<p>Das mit dem Forum war so allgemein an alle Macher-Menschen hier. Reicht ja wirklich, wenn zu jeden Beitrag ein Thema erstellt wird, neue Themen nicht selbst erstellt werden können usw.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

