<?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: Wir brauchen echte Typen und keine Primitiven, oder?</title>
	<atom:link href="http://blog.ebene7.com/2011/01/05/wir-brauchen-echte-typen-und-keine-primitiven-oder/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ebene7.com/2011/01/05/wir-brauchen-echte-typen-und-keine-primitiven-oder/</link>
	<description></description>
	<lastBuildDate>Wed, 19 Dec 2018 08:31:45 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Von: digilist</title>
		<link>https://blog.ebene7.com/2011/01/05/wir-brauchen-echte-typen-und-keine-primitiven-oder/comment-page-1/#comment-2481</link>
		<dc:creator>digilist</dc:creator>
		<pubDate>Thu, 06 Jan 2011 08:23:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=2408#comment-2481</guid>
		<description>Solange ich nicht $string = &quot;foobar&quot; schreiben kann, und daraus automatisch ein Objekt wird, macht das ganze auch nicht wirklich Spaß. Das wird doch fast exponentiell mehr Tipparbeit oO</description>
		<content:encoded><![CDATA[<p>Solange ich nicht $string = &#8220;foobar&#8221; schreiben kann, und daraus automatisch ein Objekt wird, macht das ganze auch nicht wirklich Spaß. Das wird doch fast exponentiell mehr Tipparbeit oO</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Fabian</title>
		<link>https://blog.ebene7.com/2011/01/05/wir-brauchen-echte-typen-und-keine-primitiven-oder/comment-page-1/#comment-2477</link>
		<dc:creator>Fabian</dc:creator>
		<pubDate>Wed, 05 Jan 2011 09:44:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=2408#comment-2477</guid>
		<description>In der SPL gibt es eine experimentelle Erweiterung, die PHP um Klassen für primite Typen erweitert, inkl. Enum. Für Arrays gibt es mittlerweile ArrayObject. Ansonsten schließe ich mich Rod an.

- http://de.php.net/manual/en/book.spl-types.php</description>
		<content:encoded><![CDATA[<p>In der SPL gibt es eine experimentelle Erweiterung, die PHP um Klassen für primite Typen erweitert, inkl. Enum. Für Arrays gibt es mittlerweile ArrayObject. Ansonsten schließe ich mich Rod an.</p>
<p>- <a href="http://de.php.net/manual/en/book.spl-types.php" rel="nofollow">http://de.php.net/manual/en/book.spl-types.php</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Rodney Rehm</title>
		<link>https://blog.ebene7.com/2011/01/05/wir-brauchen-echte-typen-und-keine-primitiven-oder/comment-page-1/#comment-2476</link>
		<dc:creator>Rodney Rehm</dc:creator>
		<pubDate>Wed, 05 Jan 2011 09:23:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=2408#comment-2476</guid>
		<description>Ihr habt da etwas missverstanden. Was ihr wollt: OOP-Style auf primitive Datentypen (String, Array, Boolean, Integer, …) zugreifen. Das will man aus zwei Gründen:

1. Endlich mit der Parameterreihenfolge bei String- und Array Funktionen aufräumen. »Wo war $needle? wo war $haystack?«. Simplifiziert die API, macht das Arbeiten angenehmer.
2. $string-&gt;slice(0,10)-&gt;toUpperCase() ist angenehmer zu lesen als strtoupper(substr($string,0,10))

Was ihr aber nicht wollt, ist das diese Prmitiven auch im Speicher als Objekte vorliegen. Das würde dem RAM vermutlich gar nicht mal so gut bekommen. Davon abgesehen arbeiten sämtliche PHP-core Funktionen direkt mit den primitiven. Man müsste zu viel code anfassen. 

Momentan wirft $notAnObject-&gt;foo eine Notice, $notanObject-&gt;bar() einen Fatal Error. Man hat also zwei wunderbare Angriffspunkte, um bei Bedarf einen &quot;auto cast&quot; oder &quot;implicit cast&quot; zu machen. Man erhielte sich so übrigens auch die volle backward compatibility.

Grüße,
Rod</description>
		<content:encoded><![CDATA[<p>Ihr habt da etwas missverstanden. Was ihr wollt: OOP-Style auf primitive Datentypen (String, Array, Boolean, Integer, …) zugreifen. Das will man aus zwei Gründen:</p>
<p>1. Endlich mit der Parameterreihenfolge bei String- und Array Funktionen aufräumen. »Wo war $needle? wo war $haystack?«. Simplifiziert die API, macht das Arbeiten angenehmer.<br />
2. $string-&gt;slice(0,10)-&gt;toUpperCase() ist angenehmer zu lesen als strtoupper(substr($string,0,10))</p>
<p>Was ihr aber nicht wollt, ist das diese Prmitiven auch im Speicher als Objekte vorliegen. Das würde dem RAM vermutlich gar nicht mal so gut bekommen. Davon abgesehen arbeiten sämtliche PHP-core Funktionen direkt mit den primitiven. Man müsste zu viel code anfassen. </p>
<p>Momentan wirft $notAnObject-&gt;foo eine Notice, $notanObject-&gt;bar() einen Fatal Error. Man hat also zwei wunderbare Angriffspunkte, um bei Bedarf einen &#8220;auto cast&#8221; oder &#8220;implicit cast&#8221; zu machen. Man erhielte sich so übrigens auch die volle backward compatibility.</p>
<p>Grüße,<br />
Rod</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Fabian</title>
		<link>https://blog.ebene7.com/2011/01/05/wir-brauchen-echte-typen-und-keine-primitiven-oder/comment-page-1/#comment-2475</link>
		<dc:creator>Fabian</dc:creator>
		<pubDate>Wed, 05 Jan 2011 08:19:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=2408#comment-2475</guid>
		<description>Sehe ich genauso, allerdings muss ich zugeben dass ich selbst auch schon der Versuchung erlegen bin, eine String-Klasse nach Java-Vorbild zu basteln, mittlerweile verzichte ich wieder darauf, genauso wie auf so fancy hacks wie primitive type hinting¹ und autoboxing², ich freue mich zwar immer wenn ich sehe, was alles möglich ist aber leider geht das immer zu Lasten der Kompatibilität...

¹) http://www.phpclasses.org/package/4195-PHP-Implement-type-hinting-support-for-base-PHP-types.html
²) http://www.phpclasses.org/package/6570-PHP-Wrap-string-and-integer-values-in-objects.html</description>
		<content:encoded><![CDATA[<p>Sehe ich genauso, allerdings muss ich zugeben dass ich selbst auch schon der Versuchung erlegen bin, eine String-Klasse nach Java-Vorbild zu basteln, mittlerweile verzichte ich wieder darauf, genauso wie auf so fancy hacks wie primitive type hinting¹ und autoboxing², ich freue mich zwar immer wenn ich sehe, was alles möglich ist aber leider geht das immer zu Lasten der Kompatibilität&#8230;</p>
<p>¹) <a href="http://www.phpclasses.org/package/4195-PHP-Implement-type-hinting-support-for-base-PHP-types.html" rel="nofollow">http://www.phpclasses.org/package/4195-PHP-Implement-type-hinting-support-for-base-PHP-types.html</a><br />
²) <a href="http://www.phpclasses.org/package/6570-PHP-Wrap-string-and-integer-values-in-objects.html" rel="nofollow">http://www.phpclasses.org/package/6570-PHP-Wrap-string-and-integer-values-in-objects.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Norbert Bartels</title>
		<link>https://blog.ebene7.com/2011/01/05/wir-brauchen-echte-typen-und-keine-primitiven-oder/comment-page-1/#comment-2474</link>
		<dc:creator>Norbert Bartels</dc:creator>
		<pubDate>Wed, 05 Jan 2011 07:45:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=2408#comment-2474</guid>
		<description>Mach doch Ruby ;)

Ich fände es gut, wenn es eine Objektalternative zu den Primitiven gäbe. Neben der Tatsache, dass man - insbesondere bei Strings - viele Methoden direkt am Objekt findet, kann man das type Hinting mehr nutzen (naja vielleicht gibt es das auch mal für Primitive) und würde IDEs unterstützen, da die Auflösung leichter fiele.

Auf der anderen Seite würde man, vor allem bei Zahlen, auch ein Autoboxing benötigen, damit bspw. eine einfache Addition nicht übermäßig komplex würde. 

Übrigens würde ich versuchen eine String-Klasse so zu gestalten, dass diese projektweit nutzbar ist. Aber wenn ich da an die Serialisierbarkeit denke ...</description>
		<content:encoded><![CDATA[<p>Mach doch Ruby <img src='https://blog.ebene7.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Ich fände es gut, wenn es eine Objektalternative zu den Primitiven gäbe. Neben der Tatsache, dass man &#8211; insbesondere bei Strings &#8211; viele Methoden direkt am Objekt findet, kann man das type Hinting mehr nutzen (naja vielleicht gibt es das auch mal für Primitive) und würde IDEs unterstützen, da die Auflösung leichter fiele.</p>
<p>Auf der anderen Seite würde man, vor allem bei Zahlen, auch ein Autoboxing benötigen, damit bspw. eine einfache Addition nicht übermäßig komplex würde. </p>
<p>Übrigens würde ich versuchen eine String-Klasse so zu gestalten, dass diese projektweit nutzbar ist. Aber wenn ich da an die Serialisierbarkeit denke &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Timo Reitz</title>
		<link>https://blog.ebene7.com/2011/01/05/wir-brauchen-echte-typen-und-keine-primitiven-oder/comment-page-1/#comment-2473</link>
		<dc:creator>Timo Reitz</dc:creator>
		<pubDate>Wed, 05 Jan 2011 07:39:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=2408#comment-2473</guid>
		<description>Dazu braucht es gar keine anderen Entwickler: Die gesamte PHP-Klassenbibliothek benutzt die PHP-eigenen Strings. Das Gleiche gilt natürlich für Booleans, Numbers, usw. ebenfalls. Wenn man also nicht gerade halb PHP wrapped (wrappt?), kommt es immer wieder zu Reibungen, wo man dann die primitiv typisierten „Dinge“ (Objekte sind es ja gerade nicht) umwandeln muss.</description>
		<content:encoded><![CDATA[<p>Dazu braucht es gar keine anderen Entwickler: Die gesamte PHP-Klassenbibliothek benutzt die PHP-eigenen Strings. Das Gleiche gilt natürlich für Booleans, Numbers, usw. ebenfalls. Wenn man also nicht gerade halb PHP wrapped (wrappt?), kommt es immer wieder zu Reibungen, wo man dann die primitiv typisierten „Dinge“ (Objekte sind es ja gerade nicht) umwandeln muss.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
