<?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: Methoden-Templates mit __call() erstellen</title>
	<atom:link href="http://blog.ebene7.com/2010/09/27/methoden-templates-mit-call-erstellen/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ebene7.com/2010/09/27/methoden-templates-mit-call-erstellen/</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: Ralph Meier</title>
		<link>https://blog.ebene7.com/2010/09/27/methoden-templates-mit-call-erstellen/comment-page-1/#comment-947</link>
		<dc:creator>Ralph Meier</dc:creator>
		<pubDate>Fri, 01 Oct 2010 15:51:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=1468#comment-947</guid>
		<description>Wir hatten intern gerade vor kurzem bei uns im Geschäft die Diskussion, was die Vorteile/Nachteile von Magic Methoden sind. Danke für die interessanten Kommentare. Ich bin auch eher der Meinung, dass Magic Methoden mehr Probleme schaffen, als das sie helfen.</description>
		<content:encoded><![CDATA[<p>Wir hatten intern gerade vor kurzem bei uns im Geschäft die Diskussion, was die Vorteile/Nachteile von Magic Methoden sind. Danke für die interessanten Kommentare. Ich bin auch eher der Meinung, dass Magic Methoden mehr Probleme schaffen, als das sie helfen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: steffkes</title>
		<link>https://blog.ebene7.com/2010/09/27/methoden-templates-mit-call-erstellen/comment-page-1/#comment-921</link>
		<dc:creator>steffkes</dc:creator>
		<pubDate>Tue, 28 Sep 2010 17:23:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=1468#comment-921</guid>
		<description>man mag ja über doctrine sagen was man will .. aber ich würde doch stark davon ausgehen, dass die nicht einfach nur der laune halber die ganzen magic getter &amp; setter beim umstieg von doctrine1 auf doctrine2 entfernt haben ..</description>
		<content:encoded><![CDATA[<p>man mag ja über doctrine sagen was man will .. aber ich würde doch stark davon ausgehen, dass die nicht einfach nur der laune halber die ganzen magic getter &amp; setter beim umstieg von doctrine1 auf doctrine2 entfernt haben ..</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Steffen</title>
		<link>https://blog.ebene7.com/2010/09/27/methoden-templates-mit-call-erstellen/comment-page-1/#comment-913</link>
		<dc:creator>Steffen</dc:creator>
		<pubDate>Mon, 27 Sep 2010 20:14:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=1468#comment-913</guid>
		<description>Ich seh das wie Harald. Es ist Teufelszeug! Es kostet Dich Performance, Wartbarkeit und Debuggen macht auch kein Spaß. Doctrine1 verwendet es zahlreich und wenn man wirklich mal, weil etwas schief gegangen ist, tracken will, ob es vielleicht einfach nur ein Fehler in Doctrine steckt, dann brauch mal reichlich Geduld.

@Daniel: von Magento habe ich nicht viel gutes gehört und Deine Aussage unterstützt dieses schlechte Bild, was ich habe, nur.

OFFTOPIC: Übrigens bin ich mir auch noch nicht wirklich sicher, ob Closures eine gute Erfindung haben. Vermisst habe ich sie vor 5.3 auch nicht wirklich.</description>
		<content:encoded><![CDATA[<p>Ich seh das wie Harald. Es ist Teufelszeug! Es kostet Dich Performance, Wartbarkeit und Debuggen macht auch kein Spaß. Doctrine1 verwendet es zahlreich und wenn man wirklich mal, weil etwas schief gegangen ist, tracken will, ob es vielleicht einfach nur ein Fehler in Doctrine steckt, dann brauch mal reichlich Geduld.</p>
<p>@Daniel: von Magento habe ich nicht viel gutes gehört und Deine Aussage unterstützt dieses schlechte Bild, was ich habe, nur.</p>
<p>OFFTOPIC: Übrigens bin ich mir auch noch nicht wirklich sicher, ob Closures eine gute Erfindung haben. Vermisst habe ich sie vor 5.3 auch nicht wirklich.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Daniel</title>
		<link>https://blog.ebene7.com/2010/09/27/methoden-templates-mit-call-erstellen/comment-page-1/#comment-912</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Mon, 27 Sep 2010 18:03:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=1468#comment-912</guid>
		<description>Hehe, hätte mich gewundert, wenn der Artikel nicht derartige Reaktionen hervorgebracht hätte.

@Jens-André: Dein Ansatz klingt zwar erstmal gut und logisch, dennoch würde ich dann doch lieber vollständige Codegeneration vorziehen, als zur Laufzeit an den Klassen rumzumachen.

@Harald: Sag das mal den Leuten von Varien/Magento...</description>
		<content:encoded><![CDATA[<p>Hehe, hätte mich gewundert, wenn der Artikel nicht derartige Reaktionen hervorgebracht hätte.</p>
<p>@Jens-André: Dein Ansatz klingt zwar erstmal gut und logisch, dennoch würde ich dann doch lieber vollständige Codegeneration vorziehen, als zur Laufzeit an den Klassen rumzumachen.</p>
<p>@Harald: Sag das mal den Leuten von Varien/Magento&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Jens-André Koch</title>
		<link>https://blog.ebene7.com/2010/09/27/methoden-templates-mit-call-erstellen/comment-page-1/#comment-910</link>
		<dc:creator>Jens-André Koch</dc:creator>
		<pubDate>Mon, 27 Sep 2010 16:16:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=1468#comment-910</guid>
		<description>Never Say Never Again.

Richtig ist, für die IDE&#039;s sind zusätzliche Annotationen notwendig. Richtig ist auch, dass jeder Magic-Call Performance frisst. Hinzu kommt noch der Performanceverlust durch das Namens-Matching mittels Regular-Expressions.

Die Frage lautet also, wie kann ich Methoden für Models haben, die ich nicht kenne. Antwort: _call. 
Haufenweise Kommentare/Aufregung.... ,)

Aber wie kann ich die Methodenerstellung und die Annotationserstellung automatisieren und die Wartbarkeit wiederherstellen?

Sowohl die Annotationen, aber auch die eigentlichen Methoden die über _call aufgerufen werden, kann man automatisch erstellen lassen. Und zwar bei einer erfolgreichen Delegation, denn man kennt den Methodennamen und die Parameter. Diese Angaben kann man verwenden, um mittels Scaffolding (hat auch was mit Methoden-Templates zu tun ,) die Methode selbst zu schreiben!

Günstig ist folgendes Verfahren: _call() Methode in der Parentklasse unterbringen. Per Scaffolding eine Kindklasse zur Abfrage des Models schreiben und bei erfolgreichen _calls die Methoden in diese Klasse. Dadurch reduzieren sich die Erstellungkosten, die Performancenbremsen werden rausgeworfen, die Wartbarkeit steigt automatisch an und die IDE erkennt nach und nach alle verfügbaren Methoden.

Gruß Jens</description>
		<content:encoded><![CDATA[<p>Never Say Never Again.</p>
<p>Richtig ist, für die IDE&#8217;s sind zusätzliche Annotationen notwendig. Richtig ist auch, dass jeder Magic-Call Performance frisst. Hinzu kommt noch der Performanceverlust durch das Namens-Matching mittels Regular-Expressions.</p>
<p>Die Frage lautet also, wie kann ich Methoden für Models haben, die ich nicht kenne. Antwort: _call.<br />
Haufenweise Kommentare/Aufregung&#8230;. ,)</p>
<p>Aber wie kann ich die Methodenerstellung und die Annotationserstellung automatisieren und die Wartbarkeit wiederherstellen?</p>
<p>Sowohl die Annotationen, aber auch die eigentlichen Methoden die über _call aufgerufen werden, kann man automatisch erstellen lassen. Und zwar bei einer erfolgreichen Delegation, denn man kennt den Methodennamen und die Parameter. Diese Angaben kann man verwenden, um mittels Scaffolding (hat auch was mit Methoden-Templates zu tun ,) die Methode selbst zu schreiben!</p>
<p>Günstig ist folgendes Verfahren: _call() Methode in der Parentklasse unterbringen. Per Scaffolding eine Kindklasse zur Abfrage des Models schreiben und bei erfolgreichen _calls die Methoden in diese Klasse. Dadurch reduzieren sich die Erstellungkosten, die Performancenbremsen werden rausgeworfen, die Wartbarkeit steigt automatisch an und die IDE erkennt nach und nach alle verfügbaren Methoden.</p>
<p>Gruß Jens</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Harald</title>
		<link>https://blog.ebene7.com/2010/09/27/methoden-templates-mit-call-erstellen/comment-page-1/#comment-908</link>
		<dc:creator>Harald</dc:creator>
		<pubDate>Mon, 27 Sep 2010 14:47:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=1468#comment-908</guid>
		<description>Nie, Nie, Nie, so was in einem größeren Projekt benutzen. Es gibt IMHO keinen einzigen use-case der so etwas rechtfertigt! Der Verlust an Wartbarkeit ist einfach zu groß. Ich sag dann immer zu meinen Azubis: Faules Mädchen langes Fädchen.</description>
		<content:encoded><![CDATA[<p>Nie, Nie, Nie, so was in einem größeren Projekt benutzen. Es gibt IMHO keinen einzigen use-case der so etwas rechtfertigt! Der Verlust an Wartbarkeit ist einfach zu groß. Ich sag dann immer zu meinen Azubis: Faules Mädchen langes Fädchen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: jami</title>
		<link>https://blog.ebene7.com/2010/09/27/methoden-templates-mit-call-erstellen/comment-page-1/#comment-906</link>
		<dc:creator>jami</dc:creator>
		<pubDate>Mon, 27 Sep 2010 11:52:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ebene7.com/?p=1468#comment-906</guid>
		<description>Ich finde das solche late binding Mechanismen die Lesbarkeit des Codes stark einschränken. Die Kopplungen sind sehr schwer zu erkennen. Vor allem findet sie kein automatisiertes Tool. Die selbe Technik habe ich in diversen CMS Systemen gesehen mit dicken Regexblöcken in __call. Meiner Meinung nach ist das einfach nicht strikt genug und erhöht die Fehlerquellen für einen zu geringen Nutzen.</description>
		<content:encoded><![CDATA[<p>Ich finde das solche late binding Mechanismen die Lesbarkeit des Codes stark einschränken. Die Kopplungen sind sehr schwer zu erkennen. Vor allem findet sie kein automatisiertes Tool. Die selbe Technik habe ich in diversen CMS Systemen gesehen mit dicken Regexblöcken in __call. Meiner Meinung nach ist das einfach nicht strikt genug und erhöht die Fehlerquellen für einen zu geringen Nutzen.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
