<?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: Die Modifiers in PHP – Teil 2</title>
	<atom:link href="http://www.phpmonkeys.de/2010/07/27/die-modifiers-in-php-%e2%80%93-teil-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phpmonkeys.de/2010/07/27/die-modifiers-in-php-%e2%80%93-teil-2/</link>
	<description>Software Development in PHP</description>
	<lastBuildDate>Sat, 04 Feb 2012 17:38: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: Julian Pustkuchen</title>
		<link>http://www.phpmonkeys.de/2010/07/27/die-modifiers-in-php-%e2%80%93-teil-2/comment-page-1/#comment-356</link>
		<dc:creator>Julian Pustkuchen</dc:creator>
		<pubDate>Tue, 27 Jul 2010 20:01:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.phpmonkeys.de/?p=562#comment-356</guid>
		<description>Der Code ist irgendwie zerlegt worden, sollte eigentlich nur als PHP eingerahmt werden, hier zur Sicherheit noch einmal:
public function setMeineDaten(Daten $daten) {
     $this-&gt;meine_daten = $daten;
}</description>
		<content:encoded><![CDATA[<p>Der Code ist irgendwie zerlegt worden, sollte eigentlich nur als PHP eingerahmt werden, hier zur Sicherheit noch einmal:</p>
<p>public function setMeineDaten(Daten $daten) {<br />
     $this-&gt;meine_daten = $daten;<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Julian Pustkuchen</title>
		<link>http://www.phpmonkeys.de/2010/07/27/die-modifiers-in-php-%e2%80%93-teil-2/comment-page-1/#comment-355</link>
		<dc:creator>Julian Pustkuchen</dc:creator>
		<pubDate>Tue, 27 Jul 2010 20:00:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.phpmonkeys.de/?p=562#comment-355</guid>
		<description>Ich möchte das Beispiel noch weiter erweitern:
meine_daten = $daten;
}
?&gt;
Durch die explizite angabe des Typen kann ich verhindern, dass ungewollte Typen eingespeist werden.
Außerdem gilt in der OO immer gegen eine Schnittstelle zu programmieren, so ist man nachher frei, weitere Anpassungen vorzunehmen. Ich habe diese Möglichkeit schon oft genug genutzt.
Getter und Setter haben einen wichtigen Zweck! Sie sind nicht immer Pflicht, bei größeren Projekten aus meiner Sicht aber fast immer sinnvoll.
Ob die dahinterliegenden Attribute dann private oder protected sein müssen, hängt von der Fachlogik ab.</description>
		<content:encoded><![CDATA[<p>Ich möchte das Beispiel noch weiter erweitern:</p>
<p>meine_daten = $daten;<br />
}<br />
?&gt;</p>
<p>Durch die explizite angabe des Typen kann ich verhindern, dass ungewollte Typen eingespeist werden.</p>
<p>Außerdem gilt in der OO immer gegen eine Schnittstelle zu programmieren, so ist man nachher frei, weitere Anpassungen vorzunehmen. Ich habe diese Möglichkeit schon oft genug genutzt.</p>
<p>Getter und Setter haben einen wichtigen Zweck! Sie sind nicht immer Pflicht, bei größeren Projekten aus meiner Sicht aber fast immer sinnvoll.<br />
Ob die dahinterliegenden Attribute dann private oder protected sein müssen, hängt von der Fachlogik ab.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Manuel Grundner</title>
		<link>http://www.phpmonkeys.de/2010/07/27/die-modifiers-in-php-%e2%80%93-teil-2/comment-page-1/#comment-354</link>
		<dc:creator>Manuel Grundner</dc:creator>
		<pubDate>Tue, 27 Jul 2010 18:24:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.phpmonkeys.de/?p=562#comment-354</guid>
		<description>Da muss ich Norbert recht geben:
wenn ich mit der methode von Maikl auf das property zugreife:
$myObject-&gt;myVar = &quot;test&quot;;
dann müsste ich beim einführen einer setter/getter variante (weil notwendig) jede referenz ändern.
sprich dann wäre:
$myObject-&gt;setMyVar(&quot;test&quot;);
überall einzuführen wo der setter required ist.
Deshalb sind setter/getter definitiv best practice. Open/Closed principial. Von außen macht es keinen unterschied mehr, wenn sich in der MyObject Klasse etwas ändert, der Zugriff erfolgt immer gleich.
Beim Beispiel von Maikl müsste ich jeden aufruf ändern, alles mitzubekommen wäre schwierig.
Und bei modernen IDE&#039;s wie Zend-Studio oder NetBeans ist der aufwand nicht größer als das Member direkt so zu benutzen:
NetBeans: Alt + Enter (beim private Member) generate getter/setter
Lg aus Österreich,
Manuel</description>
		<content:encoded><![CDATA[<p>Da muss ich Norbert recht geben:</p>
<p>wenn ich mit der methode von Maikl auf das property zugreife:</p>
<p>$myObject-&gt;myVar = &#8220;test&#8221;;</p>
<p>dann müsste ich beim einführen einer setter/getter variante (weil notwendig) jede referenz ändern.</p>
<p>sprich dann wäre:</p>
<p>$myObject-&gt;setMyVar(&#8220;test&#8221;); </p>
<p>überall einzuführen wo der setter required ist.<br />
Deshalb sind setter/getter definitiv best practice. Open/Closed principial. Von außen macht es keinen unterschied mehr, wenn sich in der MyObject Klasse etwas ändert, der Zugriff erfolgt immer gleich.<br />
Beim Beispiel von Maikl müsste ich jeden aufruf ändern, alles mitzubekommen wäre schwierig.</p>
<p>Und bei modernen IDE&#8217;s wie Zend-Studio oder NetBeans ist der aufwand nicht größer als das Member direkt so zu benutzen:<br />
NetBeans: Alt + Enter (beim private Member) generate getter/setter</p>
<p>Lg aus Österreich,<br />
Manuel</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Norbert</title>
		<link>http://www.phpmonkeys.de/2010/07/27/die-modifiers-in-php-%e2%80%93-teil-2/comment-page-1/#comment-353</link>
		<dc:creator>Norbert</dc:creator>
		<pubDate>Tue, 27 Jul 2010 17:22:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.phpmonkeys.de/?p=562#comment-353</guid>
		<description>Naja, würde ich so nicht unterschreiben. Wenn ich dein Beispiel leicht modifiziere, macht es durchaus Sinn:
&lt;pre lang=&quot;php&quot;&gt;
public function setMeineDaten($daten) {
     if ($daten === null) {
          throw new Exception(&#039;Illegal argument&#039;);
     }
     $this-&gt;meine_daten = $daten;
}
&lt;/pre&gt;
Wenn man bspw. nur einen lesenden Zugriff erlauben möchte, ist der private Modifier und ein zugehöriger Getter eine gute Möglichkeit.</description>
		<content:encoded><![CDATA[<p>Naja, würde ich so nicht unterschreiben. Wenn ich dein Beispiel leicht modifiziere, macht es durchaus Sinn:</p>
<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p562code1'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5621"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p562code1"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> setMeineDaten<span style="color: #009900;">&#40;</span><span style="color: #000088;">$daten</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
     <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$daten</span> <span style="color: #339933;">===</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          <span style="color: #b1b100;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> Exception<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Illegal argument'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #009900;">&#125;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">meine_daten</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$daten</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>
<p>Wenn man bspw. nur einen lesenden Zugriff erlauben möchte, ist der private Modifier und ein zugehöriger Getter eine gute Möglichkeit.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: MaikL</title>
		<link>http://www.phpmonkeys.de/2010/07/27/die-modifiers-in-php-%e2%80%93-teil-2/comment-page-1/#comment-351</link>
		<dc:creator>MaikL</dc:creator>
		<pubDate>Tue, 27 Jul 2010 14:13:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.phpmonkeys.de/?p=562#comment-351</guid>
		<description>Dazu sollte man sagen, dass es sinnlos ist, die Klassenvariablen private zu machen, und diese dann über &quot;getter&quot;- und vor allem &quot;setter&quot;-Funktionen zugänglich zu machen. Dann kann man die Variable gleich public machen.
Folgendes Beispiel ist sicherlich sinnfrei:
private $meine_daten;
public function getMeineDaten()
{
  return $this-&gt;meine_daten;
}
public function setMeineDaten($daten)
{
  $this-&gt;meine_daten = $daten;
}</description>
		<content:encoded><![CDATA[<p>Dazu sollte man sagen, dass es sinnlos ist, die Klassenvariablen private zu machen, und diese dann über &#8220;getter&#8221;- und vor allem &#8220;setter&#8221;-Funktionen zugänglich zu machen. Dann kann man die Variable gleich public machen.<br />
Folgendes Beispiel ist sicherlich sinnfrei:</p>
<p>private $meine_daten;<br />
public function getMeineDaten()<br />
{<br />
  return $this-&gt;meine_daten;<br />
}<br />
public function setMeineDaten($daten)<br />
{<br />
  $this-&gt;meine_daten = $daten;<br />
}</p>
]]></content:encoded>
	</item>
</channel>
</rss>

