<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" 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/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0"> <channel><title>Mage::blog()</title> <link>http://www.mageblog.de</link> <description>Alles rund um Magento!</description> <lastBuildDate>Thu, 10 May 2012 12:46:33 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/MageBlog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="mageblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Magento Stammtisch Karlsruhe gestartet</title><link>http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/</link> <comments>http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/#comments</comments> <pubDate>Thu, 10 May 2012 12:46:33 +0000</pubDate> <dc:creator>Christoph Bauer</dc:creator> <category><![CDATA[E-Commerce]]></category> <category><![CDATA[Entwicklung]]></category> <category><![CDATA[Magento]]></category> <category><![CDATA[Magento Events]]></category> <category><![CDATA[imagine ecommerce]]></category> <category><![CDATA[magento 2]]></category> <category><![CDATA[magento stammtisch]]></category> <category><![CDATA[magento stammtisch karlsruhe]]></category> <category><![CDATA[Magento-Entwicklung]]></category> <guid isPermaLink="false">http://www.mageblog.de/?p=1709</guid> <description><![CDATA[Gestern fand der erste Magento Stammtisch Karlsruhe in den Räumlichkeiten von Flagbit statt. Als Gäste konnten wir sowohl (künftige?) Magento-Shopbetreiber, interessierte Freiberufler als auch Entwickler aus anderen Themengebieten begrüßen, die sich über die Thematik Shop-Systeme und natürlich Magento im Speziellen informieren wollten. Dabei kamen auch sehr konkrete Fragestellungen wie bspw. die Kombination von Magento und [...]]]></description> <content:encoded><![CDATA[<p>Gestern fand der erste <strong>Magento Stammtisch Karlsruhe</strong> in den Räumlichkeiten von Flagbit statt. Als Gäste konnten wir sowohl (künftige?) Magento-Shopbetreiber, interessierte Freiberufler als auch Entwickler aus anderen Themengebieten begrüßen, die sich über die Thematik Shop-Systeme und natürlich Magento im Speziellen informieren wollten. Dabei kamen auch sehr konkrete Fragestellungen wie bspw. die <strong>Kombination von Magento und SAP-Software</strong> auf. In diesem Zusammenhang möchten wir noch einmal darauf verweisen, solche Interessen uns am besten bereits im Vorfeld mitzuteilen, gerne informieren wir uns dann explizit über diese Themen und können Fragen konkreter beantworten oder gar einen kleinen Vortrag darüber halten. Gerne können auch Gastvorträge angemeldet werden.</p><p>Beim ersten Event stand jedenfalls der Bericht von Michael und Patrick von der <strong><a
href="http://www.mageblog.de/2012/04/26/kooperation-mit-cyberforum-beim-magento-stammtisch/" title="Imagine eCommerce">imagine eCommerce aus Las Vegas</a></strong> im Mittelpunkt. Die beiden präsentierten uns ihre persönlichen Eindrücke zur Stadt der Lichter sowie dem üblichen Magento-Event-Spektakel, ließen aber vor allem sowohl die Keynotes als auch die weiteren Vorträge der Konferenz Revue passieren. Themen waren dabei unter anderem die Entwicklung von <strong>Magento 2</strong>, der <strong>Integration der Open Source-Software in die eBay-Familie</strong>, <strong>X.Commerce</strong> allgemein oder auch Dauerbrenner wie<strong> Hosting, Performance und Sicherheit</strong>. Nebenbei wurde auf der Konferenz wie immer mal gut und manchmal weniger gut die Werbetrommel für die <strong>Enterprise Edition</strong> fleißig gerührt. Vor allem aber bei den eher E-Commerce orientierten Themen konnten große Unterschiede zwischen dem Vorgehen in dem amerikanischen Markt im Vergleich zu dem in Deutschland festgestellt werden. Hauptgrund ist dabei die laschere Datenschutzsituation, die in den USA hierzulande undenkbare Vorgehensweisen bspw. im Bereich <strong>Social Media oder Re-Targeting</strong> ermöglichen. Diese Methoden wurden anschließend im Stammtisch durchaus kritisch betrachtet.</p><p>In der darauf folgenden Diskussion drehte sich aber zunächst viel um die <strong>Möglichkeiten und Grenzen von Magento 2</strong>, was vor allem die Entwickler interessierte, später kamem bei Pizza, Bier und Kicker jedoch noch viele weitere Themen rund um den Bereich E-Commerce auf.</p><p>Prinzipiell können wir auf einen gelungenen ersten Magento Stammtisch Karlsruhe zurückblicken, wobei wir jedoch durchaus noch kleinere Anlaufschwierigkeiten einräumen müssen. Auch würde es uns freuen, beim nächsten Stammtisch noch mehr Interessierte an Magento oder auch E-Commerce im Allgemeinen begrüßen zu dürfen. Hierzu noch einmal die Erinnerung, dass <strong>Themenwünsche gerne an Flagbit herangetragen werden können und von uns auch sehre gerne aufgenommen werden</strong>. <img
src='http://www.mageblog.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p><p>Zum Abschluss möchten wir uns bei unserem <a
href="http://www.cyberforum.de/" title="CyberForum Unternehmer Netzwerk">Kooperationspartner CyberForum</a> bedanken und noch ein paar Impressionen des gestrigen Abends zur Verfügung stellen.</p><p> <a
href='http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/20120509_193040/' title='20120509_193040'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/05/20120509_193040-150x150.jpg" class="attachment-thumbnail" alt="20120509_193040" title="20120509_193040" /></a> <a
href='http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/20120509_200757/' title='20120509_200757'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/05/20120509_200757-150x150.jpg" class="attachment-thumbnail" alt="20120509_200757" title="20120509_200757" /></a> <a
href='http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/20120509_210908/' title='20120509_210908'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/05/20120509_210908-150x150.jpg" class="attachment-thumbnail" alt="20120509_210908" title="20120509_210908" /></a> <a
href='http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/20120509_210923/' title='20120509_210923'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/05/20120509_210923-150x150.jpg" class="attachment-thumbnail" alt="20120509_210923" title="20120509_210923" /></a> <a
href='http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/img_2000/' title='IMG_2000'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/05/IMG_2000-150x150.jpg" class="attachment-thumbnail" alt="IMG_2000" title="IMG_2000" /></a> <a
href='http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/img_2004/' title='IMG_2004'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/05/IMG_2004-150x150.jpg" class="attachment-thumbnail" alt="IMG_2004" title="IMG_2004" /></a> <a
href='http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/img_2005/' title='IMG_2005'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/05/IMG_2005-150x150.jpg" class="attachment-thumbnail" alt="IMG_2005" title="IMG_2005" /></a> <a
href='http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/img_1996/' title='IMG_1996'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/05/IMG_1996-150x150.jpg" class="attachment-thumbnail" alt="IMG_1996" title="IMG_1996" /></a> <a
href='http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/img_1998/' title='IMG_1998'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/05/IMG_1998-150x150.jpg" class="attachment-thumbnail" alt="IMG_1998" title="IMG_1998" /></a><div
class="fblike_button" style="margin: 10px 0;"><iframe
src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.mageblog.de%2F2012%2F05%2F10%2Fmagento-stammtisch-karlsruhe-gestartet%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=verdana&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div> ]]></content:encoded> <wfw:commentRss>http://www.mageblog.de/2012/05/10/magento-stammtisch-karlsruhe-gestartet/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Kooperation mit CyberForum beim Magento Stammtisch</title><link>http://www.mageblog.de/2012/04/26/kooperation-mit-cyberforum-beim-magento-stammtisch/</link> <comments>http://www.mageblog.de/2012/04/26/kooperation-mit-cyberforum-beim-magento-stammtisch/#comments</comments> <pubDate>Thu, 26 Apr 2012 11:33:30 +0000</pubDate> <dc:creator>Christoph Bauer</dc:creator> <category><![CDATA[E-Commerce]]></category> <category><![CDATA[Magento Events]]></category> <category><![CDATA[magento stammtisch karlsruhe]]></category> <guid isPermaLink="false">http://www.mageblog.de/?p=1699</guid> <description><![CDATA[In zwei Wochen ist es soweit und Flagbit lädt zum ersten Magento Stammtisch in Karlsruhe ein. Für dieses Event konnten wir nun das CyberForum als Kooperationspartner gewinnen. Wir freuen uns also nicht nur auf den ersten Termin des Stammtisches, sondern auch auf die gemeinsame Arbeit mit dem Cyberforum und hoffen natürlich, am 09.05. viele Gäste [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.mageblog.de/wp-content/uploads/2012/04/cyb_logo_RGB_72.jpg"><img
class="alignleft  wp-image-1700" title="cyb_logo_RGB_72" src="http://www.mageblog.de/wp-content/uploads/2012/04/cyb_logo_RGB_72-300x188.jpg" alt="Cyberforum Logo" width="200" height="125" /></a>In zwei Wochen ist es soweit und Flagbit <a
title="Magento Stammtisch Karlsruhe – 1.Termin 09.05.2012" href="http://www.mageblog.de/2012/04/10/magento-stammtisch-karlsruhe-1-termin-09-05-2012/">lädt zum ersten Magento Stammtisch in Karlsruhe ein</a>. Für dieses Event konnten wir nun das <a
title="Cyberforum" href="http://www.cyberforum.de/">CyberForum</a> als Kooperationspartner gewinnen. Wir freuen uns also nicht nur auf den ersten Termin des Stammtisches, sondern auch auf die gemeinsame Arbeit mit dem Cyberforum und hoffen natürlich, am 09.05. viele Gäste bei uns in der Griesbachstraße 10 begrüßen zu können. Großes Thema wird dabei unter anderem die imagine eCommerce Konferenz in Las Vegas sein.<div
class="fblike_button" style="margin: 10px 0;"><iframe
src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.mageblog.de%2F2012%2F04%2F26%2Fkooperation-mit-cyberforum-beim-magento-stammtisch%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=verdana&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div> ]]></content:encoded> <wfw:commentRss>http://www.mageblog.de/2012/04/26/kooperation-mit-cyberforum-beim-magento-stammtisch/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>ISO-8601-Stolperfalle bei Zend_Date</title><link>http://www.mageblog.de/2012/04/26/iso-8601-stolperfalle-bei-zend_date/</link> <comments>http://www.mageblog.de/2012/04/26/iso-8601-stolperfalle-bei-zend_date/#comments</comments> <pubDate>Thu, 26 Apr 2012 10:12:10 +0000</pubDate> <dc:creator>David Fuhr</dc:creator> <category><![CDATA[Allgemein]]></category> <guid isPermaLink="false">http://www.mageblog.de/?p=1680</guid> <description><![CDATA[Jeder der mit Datumswerten gearbeitet hat, weiß (oder sollte zumindest) um die kleinen und großen Untiefen wie Zeitzonen, Zeitumstellung und Schaltjahre die es dabei zu umschiffen gilt. Neben der seit PHP 5.2 verfügbaren DateTime-Klasse gibt es im Zend Framework die ältere Zend_Date-Komponente. Mit beiden lässt sich die Handhabung von Datumswerten in einer Applikation vereinfachen und [...]]]></description> <content:encoded><![CDATA[<p>Jeder der mit Datumswerten gearbeitet hat, weiß (oder sollte zumindest) um die kleinen und großen Untiefen wie Zeitzonen, Zeitumstellung und Schaltjahre die es dabei zu umschiffen gilt. Neben der seit PHP 5.2 verfügbaren <a
href=".php.net/manual/en/class.datetime.php">DateTime-Klasse</a> gibt es im Zend Framework die ältere <a
href="http://framework.zend.com/manual/en/zend.date.html">Zend_Date-Komponente</a>. Mit beiden lässt sich die Handhabung von Datumswerten in einer Applikation vereinfachen und vereinheitlichen:</p><div
class="wp_syntax"><div
class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$date</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Date<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'01.01.2011'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'de_DE'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$date</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 01.01.2011 00:00:00</span></pre></div></div><p>Soweit so gut. Formatieren kann man das Datum mit Zend_Date auch, zum Beispiel zur Verwendung in einem MySQL-Query:</p><div
class="wp_syntax"><div
class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$date</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Date<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'01.01.2011'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'de_DE'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$date</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'yyyy-MM-dd HH:mm:ss'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 2011-01-01 00:00:00</span></pre></div></div><p>Bei der Verwendung der <a
href="http://framework.zend.com/manual/en/zend.date.constants.html#zend.date.constants.list">Formatcodes</a> ist darauf zu achten <strong>&#8220;yyyy&#8221; und das ähnlich aussehende &#8220;YYYY&#8221; keinesfalls zu verwechseln</strong>! Beide geben zwar das Jahr aus, aber mit einem kleinen, aber gewichtigen Unterschied.</p><p>Intern verwendet Zend_Date zur Formatierung die <a
href="http://php.net/manual/en/function.date.php">date-Funktion</a> und konvertiert die Zend_Date-Formatcodes entsprechend. Während &#8220;yyyy&#8221; zu &#8220;Y&#8221; konvertiert wird und das erwartete Ergebnis liefert, wird &#8220;YYYY&#8221; zu &#8220;o&#8221; umgewandelt. Und &#8220;o&#8221; hat folgende Bedeutung:</p><blockquote
cite="http://php.net/manual/en/function.date.php#refsect1-function.date-parameters"><p>ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. (added in PHP 5.1.0)<br
/> &ndash; <a
href="http://php.net/manual/en/function.date.php#refsect1-function.date-parameters">php.net</a></p></blockquote><p><strong>Da die erste Tage im Jahr 2011 noch zur letzten Kalenderwoche des Jahres 2010 gehören, wird gemäß <a
href="http://de.wikipedia.org/wiki/ISO_8601">ISO 8601</a> das Jahr 2010 ausgegeben.</strong> Und das dürfte in den seltesten Fällen das sein, was man möchte&#8230;<div
class="fblike_button" style="margin: 10px 0;"><iframe
src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.mageblog.de%2F2012%2F04%2F26%2Fiso-8601-stolperfalle-bei-zend_date%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=verdana&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div> ]]></content:encoded> <wfw:commentRss>http://www.mageblog.de/2012/04/26/iso-8601-stolperfalle-bei-zend_date/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Warum Vagrant eine neue VM erstellt anstatt die vorhandene aus dem Ruhezustand zu holen</title><link>http://www.mageblog.de/2012/04/25/warum-vagrant-eine-neue-vm-erstellt-anstatt-die-vorhandene-aus-dem-ruhezustand-zu-holen/</link> <comments>http://www.mageblog.de/2012/04/25/warum-vagrant-eine-neue-vm-erstellt-anstatt-die-vorhandene-aus-dem-ruhezustand-zu-holen/#comments</comments> <pubDate>Wed, 25 Apr 2012 13:26:51 +0000</pubDate> <dc:creator>Claudio Zizza</dc:creator> <category><![CDATA[Allgemein]]></category> <category><![CDATA[Entwicklung]]></category> <category><![CDATA[Ruhezustand]]></category> <category><![CDATA[Vagrant]]></category> <category><![CDATA[Virtual Machine]]></category> <category><![CDATA[VirtualBox]]></category> <category><![CDATA[VM]]></category> <guid isPermaLink="false">http://www.mageblog.de/?p=1654</guid> <description><![CDATA[Wer mit Vagrant arbeitet kann sich an den Vorteilen einer Virtual Machine erfreuen. Einmal gestartet baut sich je nach Konfiguration das System auf, installiert über die Provisioners die notwendige Software die man zusätzlich braucht und nach einer vom Umfang der Software abhängigen Wartezeit hat man ein fertiges Entwicklungssystem. Hiermit ist es für jeden sehr einfach [...]]]></description> <content:encoded><![CDATA[<p>Wer mit <strong><a
title="Vagrant" href="http://vagrantup.com/" target="_blank">Vagrant</a></strong> arbeitet kann sich an den Vorteilen einer Virtual Machine erfreuen. Einmal gestartet baut sich je nach Konfiguration das System auf, installiert über die <a
title="Vagrant Provisioners" href="http://vagrantup.com/docs/provisioners.html" target="_blank">Provisioners</a> die notwendige Software die man zusätzlich braucht und nach einer vom Umfang der Software abhängigen Wartezeit hat man ein fertiges Entwicklungssystem. <strong>Hiermit ist es für jeden sehr einfach sich ein System aufzubauen</strong> welches dem auf der Productionseite ähnlich oder sogar gleich aufgebaut ist. Und wenn die Virtual Machine nicht mehr verwendet wird, kann sie in den Ruhezustand versetzt werden um sie am nächsten Tag ohne lange zu warten wieder zu starten.</p><p>Die Überraschung war jedoch groß als ich heute morgen mein System <strong>aus dem Ruhezustand zurückholen</strong> wollte aber Vagrant eher der Meinung war <strong>das System komplett neu aufsetzen</strong> zu müssen. Ein kurzer Blick in meine <a
title="VirtualBox" href="https://www.virtualbox.org/" target="_blank">VirtualBox </a>verriet mir allerdings das mein eigentliches System sich noch immer im Suspended Mode befand diese jedoch beim Starten nicht mehr verwendete. <strong>Wieso wurde nicht mehr die vorhandene Virtual Machine verwendet?</strong></p><p>Welche der vorhandenen VMs von Vagrant verwendet wird legt die Datei <strong>.vagrant</strong> fest welche sich im selben Verzeichnis wie die Vagrantfile-Datei befindet. In einem Texteditor geöffnet offenbart sich dem Betrachter ein recht schlichtes Json Format:</p><div
class="wp_syntax"><div
class="code"><pre class="json" style="font-family:monospace;">{&quot;active&quot;:{&quot;default&quot;:&quot;bbaefe94-1c67-414d-80e7-5bc68d38882f&quot;}}</pre></div></div><p>Der Wert des default-Keys gibt an welche der vorhandenen VMs verwendet werden soll, jedoch kann man aus dem Wert nicht erkennen welche der hinterlegten VMs beim Start angesprochen werden. Sollte aus irgendeinem Grund die Datei korrumpiert oder vielleicht gelöscht werden, so wird beim nächsten <em>vagrant up</em> eine neue VM aufgesetzt auch wenn sich auf eurer Festplatte immer noch die ursprüngliche VM befindet. Um an den Bezeichner eurer gewünschten VM zu kommen bietet VirtualBox hierfür den Konsolenbefehl <strong>VBoxManage</strong> an. Mit dem folgenden Aufruf listet ihr nicht nur alle vorhandenen Virtual Machines auf sondern auch ihre dazugehörenden Bezeichner:</p><div
class="wp_syntax"><div
class="code"><pre class="bash" style="font-family:monospace;">C:\Program Files\Oracle\VirtualBox\VBoxManage.exe list vms</pre></div></div><p>Legt nun eine <strong>.vagrant</strong> Datei in eurem Projektverzeichnis an in dem sich auch das dazugehörende Vagrantfile befindet und fügt den Json-Code mit dem ermittelten Bezeichner eurer VM dazu. Beim nächsten Start über Vagrant wird nun die VM verwendet deren Bezeichner in die <strong>.vagrant</strong> eingetragen wurde.</p><p>Diese Vorgehensweise habe ich mit der <strong>Vagrant-Version 1.0.2</strong> durchgeführt. Ob dieser Lösungsweg auch noch bei zukünftigen Versionen funktioniert bleibt abzuwarten.<div
class="fblike_button" style="margin: 10px 0;"><iframe
src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.mageblog.de%2F2012%2F04%2F25%2Fwarum-vagrant-eine-neue-vm-erstellt-anstatt-die-vorhandene-aus-dem-ruhezustand-zu-holen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=verdana&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div> ]]></content:encoded> <wfw:commentRss>http://www.mageblog.de/2012/04/25/warum-vagrant-eine-neue-vm-erstellt-anstatt-die-vorhandene-aus-dem-ruhezustand-zu-holen/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Flagbit bei der imagine eCommerce in Las Vegas</title><link>http://www.mageblog.de/2012/04/20/flagbit-bei-der-imagine-ecommerce-in-las-vegas/</link> <comments>http://www.mageblog.de/2012/04/20/flagbit-bei-der-imagine-ecommerce-in-las-vegas/#comments</comments> <pubDate>Fri, 20 Apr 2012 11:50:49 +0000</pubDate> <dc:creator>Christoph Bauer</dc:creator> <category><![CDATA[E-Commerce]]></category> <category><![CDATA[Magento Events]]></category> <category><![CDATA[imagine ecommerce]]></category> <category><![CDATA[las vegas]]></category> <category><![CDATA[magento 2.0]]></category> <category><![CDATA[Roy Rubin]]></category> <guid isPermaLink="false">http://www.mageblog.de/?p=1630</guid> <description><![CDATA[Normalerweise steht Las Vegas für bunte Neonreklamen und Casinos, doch nächste Woche ist die Stadt im US-Bundestaat Nevada auch der zentrale Anlaufpunkt für viele E-Commerce-Experten. Vom 23.-25. April findet dort die von Magento veranstaltete imagine eCommerce Konferenz statt, die sich vornehmlich der Zukunft des Open Source E-Commerce-Systems widmet, aber auch viele weitere Themen rund um [...]]]></description> <content:encoded><![CDATA[<p>Normalerweise steht <strong>Las Vegas</strong> für bunte Neonreklamen und Casinos, doch nächste Woche ist die Stadt im US-Bundestaat Nevada auch der zentrale Anlaufpunkt für viele E-Commerce-Experten. Vom 23.-25. April findet dort die von <a
title="Magento" href="http://www.magentocommerce.com/">Magento </a>veranstaltete <a
title="Imagine eCommerce" href="http://www.imagineecommerce.com/"><strong>imagine eCommerce Konferenz</strong></a> statt, die sich vornehmlich der Zukunft des Open Source E-Commerce-Systems widmet, aber auch viele weitere Themen rund um den Online-Handel beleuchtet. Als Veranstaltungsort konnte das <a
title="M Resort Las Vegas" href="http://www.themresort.com/">M Resort Spa Casino</a> gewonnen werden, das sich in der unmittelbaren Nähe des legendären Las Vegas Strip befindet.</p><p>An drei Tagen können die Teilnehmer sich in <strong><a
title="Grep für Application-Logs" href="http://www.imagineecommerce.com/program/">Vorträgen</a></strong> und speziellen <strong><a
href="http://www.imagineecommerce.com/2012keynotes/">Keynotes</a></strong> zu Themen rund um den immer weiter wachsenden E-Commerce-Markt mit Schwerpunkt auf Magento informieren. Insgesamt werden über 1.000 Teilnehmer in diesem Jahr erwartet, darunter auch einige deutsche Unternehmen, unter anderem der Such- und Navigationsanbieter <a
title="Such- und Navigationsplattform" href="http://www.fact-finder.de/"><strong>FACT-Finder</strong></a>. Auch <strong>Flagbit</strong> ist in Person von Michael Türk und Patrick Scherr live vor Ort und wird sowohl für den Mageblog als auch für die <a
title="T3n" href="http://t3n.de/">t3n</a> berichten.</p><p>Die Vorträge in dem vollgepackten 3-Tages-Plan sind dabei in zwei Schwerpunkte aufgeteilt. Der <strong>„Technology Track“</strong> ist vor allem für Entwickler interessant, während sich der <strong>„Business Track“</strong> eher der Online Marketing Sicht widmet. Zusätzlich gibt es noch einen sogenannten <strong>„Partner Powered Track“</strong> in den spezielle Infos zu Magento, X.commerce und Co. vermittelt werden. Als Speaker werden unter anderem <strong>Roy Rubin</strong>, General Manager von Magento, oder Magento-President <strong>Bob Schwartz</strong> auftreten.</p><p>Die dabei behandelten Themengebiete sind äußerst vielfältig, u.a. werden die neuesten Entwicklungen bei Klassikern wie <strong>Sicherheitsaspekten beim Entwickeln</strong>,<strong> Caching, Qualitätssicherung</strong> und <strong>Conversion-Optimierung</strong> beleuchtet aber auch die mittlerweile unabdingbaren Trends in den Bereichen <strong>Social Media</strong> und <strong>Mobile Commerce</strong> stehen auf der Tagesordnung.</p><p>Neben all den fachlichen Vorträgen gibt es beim gemeinsamen Frühstück und vor allem dem Partnership-Dinner zum Abschluss genügend Möglichkeiten zum Netzwerken.</p><p><strong>Falls ihr Fragen zu der Veranstaltung oder verstärktes Interesse an speziellen Themen habt, könnt ihr euch natürlich (gerne auch hier im Blog) damit melden und wir versuchen so weit wie möglich auf diese Schwerpunkte einzugehen und dementsprechend einen besonderen Fokus bei unserem Besuch auf der imagine eCommerce zu legen.</strong><div
class="fblike_button" style="margin: 10px 0;"><iframe
src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.mageblog.de%2F2012%2F04%2F20%2Fflagbit-bei-der-imagine-ecommerce-in-las-vegas%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=verdana&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div> ]]></content:encoded> <wfw:commentRss>http://www.mageblog.de/2012/04/20/flagbit-bei-der-imagine-ecommerce-in-las-vegas/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Magento Stammtisch Karlsruhe – 1.Termin 09.05.2012</title><link>http://www.mageblog.de/2012/04/10/magento-stammtisch-karlsruhe-1-termin-09-05-2012/</link> <comments>http://www.mageblog.de/2012/04/10/magento-stammtisch-karlsruhe-1-termin-09-05-2012/#comments</comments> <pubDate>Tue, 10 Apr 2012 10:26:01 +0000</pubDate> <dc:creator>Christoph Bauer</dc:creator> <category><![CDATA[Magento Events]]></category> <category><![CDATA[magento stammtisch karlsruhe]]></category> <guid isPermaLink="false">http://www.mageblog.de/?p=1615</guid> <description><![CDATA[Wie in anderen Städten schon eifrig praktiziert, holen wir den Stammtisch-Trend für Magento nun auch nach Karlsruhe. Ziel ist es, Leute zusammenzubringen, Erfahrungen auszutauschen, über die neuesten E-Commerce-Trends zu philosophieren und natürlich Spaß zu haben. Startschuss wird am 09.05.2012 ab 19 Uhr sein. Wir laden dann Shop-Betreiber, E-Commerce-Verantwortliche, Entwickler oder sonstige Interessierte zu uns in [...]]]></description> <content:encoded><![CDATA[<p>Wie in anderen Städten schon eifrig praktiziert, holen wir den <strong>Stammtisch-Trend für Magento</strong> nun auch nach Karlsruhe. Ziel ist es, Leute zusammenzubringen, Erfahrungen auszutauschen, über die neuesten E-Commerce-Trends zu philosophieren und natürlich Spaß zu haben.</p><p>Startschuss wird am <strong>09.05.2012 ab 19 Uhr</strong> sein. Wir laden dann Shop-Betreiber, E-Commerce-Verantwortliche, Entwickler oder sonstige Interessierte zu uns in die Griesbachstr. 10 ein, dem einen oder anderen Fachvortrag zu lauschen oder einfach nur ein wenig zu fachsimpeln. Von da an würden wir den Stammtisch gern einmal im Monat durchführen, bei Interesse jeweils mit thematischen Schwerpunkten.</p><p>Damit das Ganze direkt von Anfang an inhaltlich für alle interessant ist, berichten wir von der <strong>Imagine E-Commerce-Konferenz aus Las Vegas</strong>, die vom 23.-25. April 2012 in Las Vegas stattfindet. Wir hoffen, interessante Informationen zu Magento, den aktuellen Entwicklungen und den zukünftigen Trends aus erster Hand liefern zu können.</p><p>Wir würden uns darüber hinaus auch sehr über weitere <strong>Themenwünsche</strong> freuen. Sei es, weil jemand einen Vortrag halten möchte oder weil ein Thema einfach besonders interessiert.</p><p>Für isotonische Getränke sämtlicher Art wird gesorgt sein. Wir freuen uns auf zahlreiche Gäste und Diskussionen.</p><p><strong>WICHTIG: Wer über mögliche Änderungen, News oder Themen informiert werden will, tritt am Besten der Gruppe <a
href="https://www.xing.com/net/magentostammtischkarlsruhe?sc_o=as_g" title="Magento Stammtisch Karlsruhe">Magento Stammtisch Karlsruhe</a> in XING bei, dort werden wir über das Event berichten. </strong><div
class="fblike_button" style="margin: 10px 0;"><iframe
src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.mageblog.de%2F2012%2F04%2F10%2Fmagento-stammtisch-karlsruhe-1-termin-09-05-2012%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=verdana&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div> ]]></content:encoded> <wfw:commentRss>http://www.mageblog.de/2012/04/10/magento-stammtisch-karlsruhe-1-termin-09-05-2012/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>PHP Summit März 2012 in München</title><link>http://www.mageblog.de/2012/03/26/php-summit-marz-2012-in-munchen/</link> <comments>http://www.mageblog.de/2012/03/26/php-summit-marz-2012-in-munchen/#comments</comments> <pubDate>Mon, 26 Mar 2012 13:45:31 +0000</pubDate> <dc:creator>Claudio Zizza</dc:creator> <category><![CDATA[Allgemein]]></category> <category><![CDATA[Mockery]]></category> <category><![CDATA[PHP Summit 2012]]></category> <category><![CDATA[xdebug]]></category> <category><![CDATA[XML]]></category> <category><![CDATA[XPath]]></category> <guid isPermaLink="false">http://www.mageblog.de/?p=1583</guid> <description><![CDATA[Letzte Woche war es wieder einmal Zeit für einen Besuch in der bayrischen Landeshauptstadt, der nächste PHP Summit stand an. Dieses Mal durfte u.a. ich mich nach München begeben und mich dort mit den Vorträgen befassen, die auf alle Teilnehmer warteten und pickte mir meine persönliche Auswahl aus der Liste der möglichen Themen. Wie schon [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.mageblog.de/wp-content/uploads/2011/03/php-summit.png"><img
class="alignleft size-full wp-image-486" src="http://www.mageblog.de/wp-content/uploads/2011/03/php-summit.png" alt="The Ultimate PHP Event" width="226" height="143" /></a>Letzte Woche war es wieder einmal Zeit für einen Besuch in der bayrischen Landeshauptstadt, der nächste <a
title="PHP Summit" href="http://php-summit.de/" target="_blank">PHP Summit</a> stand an. Dieses Mal durfte u.a. ich mich nach München begeben und mich dort mit den Vorträgen befassen, die auf alle Teilnehmer warteten und pickte mir meine persönliche Auswahl aus der Liste der möglichen Themen.</p><p>Wie schon David in seinem <a
title="Resümee des PHP Summit 2011 Spring" href="http://www.mageblog.de/2011/04/13/resumee-des-php-summit-2011-sprin/" target="_blank">letztjährigen Blogbeitrag</a> erwähnt hatte, war zu Beginn der Vorträge eher nur Bekanntes zu hören und diese wurden erst gegen Ende für viele interessant. Jedoch ist das Ganze natürlich auch von den Teilnehmern abhängig, denn diese sollen nicht einfach im Raum sitzen und dem Vorgetragenen lauschen, sondern auch <strong>aktiv zu den Themen mit Fragen, Anregungen und auch Lösungsvorschlägen beitragen</strong>. Allein dadurch kann ein Thema eine interessante Richtung einschlagen und dem einen oder anderen eine Anregung für den Arbeitsalltag geben. Außerdem möchte ich mich an dieser Stelle natürlich auch bei <strong>Arne Blankerts</strong>, <strong>Sebastian Bergmann</strong> und <strong>Stefan Priebsch</strong> bedanken, da vor allem die letzten beiden trotz fortgeschrittener Krankheit versucht haben, ihr Programm durchzuziehen, wobei Stefan Priebsch leider am letzten Tag nicht mehr selbst anwesend sein konnte.</p><p>Als Debug-Hilfe wurde <a
title="fDebug" href="http://fdebug.de" target="_blank">fDebug </a>vorgestellt, ein Tool welches gut für Fehler eingesetzt werden kann, die nur beim Kunden aufzutreten scheinen und mit dessen Hilfe der Entwickler die ausgelösten Fehler live auf einer übersichtlichen Oberfläche mitverfolgen kann, ohne dabei von den Systemmeldungen anderer User abgelenkt zu werden.</p><p><a
title="KCachegrind" href="http://kcachegrind.sourceforge.net" target="_blank">KCachegrind</a> bietet eine geordnete grafische Übersicht der von <a
title="Xdebug" href="http://xdebug.org/" target="_blank">Xdebug</a> angelegten Cachegrind-Dateien bei der ein Entwickler nicht nur <a
title="Flaschenhals" href="http://de.wikipedia.org/wiki/Flaschenhals_%28Logistik%29" target="_blank">Flaschenhälse</a> erkennen, sondern auch die Last im Vergleich zu den anderen Funktionsaufrufen ablesen kann.</p><p>Arne Blankerts erklärte in seinem Vortrag die Tücken über das Parsen von XML-Dateien sowie die wunderliche Entdeckung das bei seinem <a
title="XPath" href="http://www.w3schools.com/xpath/" target="_blank">XPath</a>-Beispiel die Countfunktion eine Zahl des Datentyps float ausgibt. Für den Fall, dass es einmal eine XML Datei mit halben Nodes geben sollte.</p><p>Neu war der Vortrag <strong>Tuning für Web-Anwendungen</strong>, in dem über die verschiedenen Architekturen gesprochen wurde und wie diese eingesetzt werden können. Es mag zwar nicht direkt mit der Programmierung zusammenhängen, jedoch ist es nützlich, wenn die Entwickler bei einem Projekt an die Grenzen der vorhandenen Serverarchitektur stoßen und eine neue Lösung brauchen.</p><p>Wem die Möglichkeiten für die <a
title="PHPUnit" href="https://github.com/sebastianbergmann/phpunit" target="_blank">PHPUnit</a> Mockobjekte nicht reichen, sollte einen Blick auf <a
title="Mockery" href="https://github.com/padraic/mockery" target="_blank">Mockery</a> werfen. Dabei handelt es sich um ein Mock-Objekt Framework, das sich in verschiedene Test-Frameworks einsetzen lassen und somit den Einsatz von gemockten Objekten erweitern kann.</p><p>Wer in München nach dem offiziellen Programm den Abend gemütlich ausklingen lassen möchte, dem kann ich übrigens das <a
title="Mamasita" href="http://www.mamasita-muenchen.de/" target="_blank">Mamasita</a> wärmstens empfehlen.<div
class="fblike_button" style="margin: 10px 0;"><iframe
src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.mageblog.de%2F2012%2F03%2F26%2Fphp-summit-marz-2012-in-munchen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=verdana&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div> ]]></content:encoded> <wfw:commentRss>http://www.mageblog.de/2012/03/26/php-summit-marz-2012-in-munchen/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>PHP 5.4: Die wichtigsten Änderungen</title><link>http://www.mageblog.de/2012/03/13/php-5-4-die-wichtigsten-aenderungen/</link> <comments>http://www.mageblog.de/2012/03/13/php-5-4-die-wichtigsten-aenderungen/#comments</comments> <pubDate>Tue, 13 Mar 2012 16:10:44 +0000</pubDate> <dc:creator>David Fuhr</dc:creator> <category><![CDATA[Allgemein]]></category> <guid isPermaLink="false">http://www.mageblog.de/?p=1569</guid> <description><![CDATA[Vor einigen Tagen war es soweit: PHP 5.4 wurde veröffentlicht. Die Anzahl der Änderungen sind, im Vergleich mit PHP 5.3, überschaubar, aber dennoch sollte man sie kennen. Die wichtigsten Änderungen kurz zusammengefasst: PHP 5.4 &#8211; So what?! View more presentations from flagbit. Einige Code-Beispiele zu den Änderungen sind im zugehörigen Git-Repository: https://bitbucket.org/flagbit/php54. Die Informationen zu [...]]]></description> <content:encoded><![CDATA[<p>Vor einigen Tagen war es soweit: PHP 5.4 wurde veröffentlicht. Die Anzahl der Änderungen sind, im Vergleich mit PHP 5.3, überschaubar, aber dennoch sollte man sie kennen. Die wichtigsten Änderungen kurz zusammengefasst:</p><div
style="width:580px" id="__ss_11989781"><strong
style="display:block;margin:12px 0 4px"><a
href="http://www.slideshare.net/flagbit/php-54-11989781" title="PHP 5.4">PHP 5.4 &#8211; So what?!</a></strong><object
id="__sse11989781" width="580" height="484"><param
name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=php54-120313110137-phpapp02&#038;stripped_title=php-54-11989781&#038;userName=flagbit" /><param
name="allowFullScreen" value="true"/><param
name="allowScriptAccess" value="always"/><param
name="wmode" value="transparent"/><embed
name="__sse11989781" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=php54-120313110137-phpapp02&#038;stripped_title=php-54-11989781&#038;userName=flagbit" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="580" height="484"></embed></object><div
style="padding:5px 0 12px">View more <a
href="http://www.slideshare.net/">presentations</a> from <a
href="http://www.slideshare.net/flagbit">flagbit</a>.</div></div><p>Einige Code-Beispiele zu den Änderungen sind im zugehörigen Git-Repository: <a
href="https://bitbucket.org/flagbit/php54">https://bitbucket.org/flagbit/php54</a>.</p><p>Die <a
href='http://www.mageblog.de/wp-content/uploads/2012/03/Prinzip-und-Anwendung-der-Mehrfachvererbung.pdf'>Informationen zu Traits</a> und dem Diamond-Problem sind im seperaten PDF.<div
class="fblike_button" style="margin: 10px 0;"><iframe
src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.mageblog.de%2F2012%2F03%2F13%2Fphp-5-4-die-wichtigsten-aenderungen%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=verdana&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div> ]]></content:encoded> <wfw:commentRss>http://www.mageblog.de/2012/03/13/php-5-4-die-wichtigsten-aenderungen/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Neues Modul: GermanSetup als MRG-Ersatz</title><link>http://www.mageblog.de/2012/02/15/neues-modul-germansetup-als-mrg-ersatz/</link> <comments>http://www.mageblog.de/2012/02/15/neues-modul-germansetup-als-mrg-ersatz/#comments</comments> <pubDate>Wed, 15 Feb 2012 13:49:55 +0000</pubDate> <dc:creator>Michael Türk</dc:creator> <category><![CDATA[Magento]]></category> <category><![CDATA[GermanSetup]]></category> <category><![CDATA[Magento Modul]]></category> <category><![CDATA[MRG]]></category> <guid isPermaLink="false">http://www.mageblog.de/?p=1524</guid> <description><![CDATA[Zusammen mit unseren Kollegen von Firegento haben wir soeben ein neues Modul GermanSetup in Magento Connect hinterlegen können. Es soll Betreibern von Online Shops in Deutschland helfen, die rechtlichen Vorgaben einfach einzuhalten. Böse Zungen behaupten nun eventuell, so etwas bei Market Ready Germany oder bei German Shop bereits gesehen zu haben; unsere Firegento-Kollegen und wir [...]]]></description> <content:encoded><![CDATA[<p>Zusammen mit unseren Kollegen von <a
title="FireGento" href="http://www.firegento.com/" target="_blank">Firegento</a> haben wir soeben ein <a
title="GermanSetup bei Magento Connect" href="http://www.magentocommerce.com/magento-connect/german-setup-6623.html" target="_blank">neues Modul GermanSetup in Magento Connect</a> hinterlegen können. Es soll Betreibern von Online Shops in Deutschland helfen, die rechtlichen Vorgaben einfach einzuhalten. Böse Zungen behaupten nun eventuell, so etwas bei <a
title="Market Ready Germany" href="http://www.magentocommerce.com/magento-connect/market-ready-germany.html" target="_blank">Market Ready Germany</a> oder bei <a
title="German Shop" href="http://www.magentocommerce.com/magento-connect/german-shop-3384.html" target="_blank">German Shop</a> bereits gesehen zu haben; unsere Firegento-Kollegen und wir haben jedoch eine Notwendigkeit gesehen, einige Dinge anders anzugehen:</p><ul><li>Die bisherigen Implementierungen überschreiben einige zentrale Klassen, teilweise gar über Code-Pool-Hacks. Updatefähigkeit, Wartbarkeit oder Erweiterbarkeit leiden hierunter jedoch mitunter stark.</li><li>Das Modul sollte prinzipiell unabhängig von diversen Anbietern und externen Dienstleistern sein. Wir hatten mit MRG und unserem eigenen Modul &#8211; der FACT-Finder-Integration &#8211; im Speziellen ein Problem dahingehend, dass das Modul per MRG automatisch installiert wird und damit die Klasse der Suche überschreibt, auch wenn der betroffene Shop gar kein FACT-Finder einzusetzen gedenkt. Dummerweise kann man Klassen-Überschreibungen eben nicht davon abhängig machen, ob ein Modul auch aktiviert wird.</li><li>Wir wollten dem Benutzer trotzdem einige sinnvolle Module für den deutschen Markt ans Herz legen. Diese werden jedoch ausschließlich vorgeschlagen, nicht einfach installiert. Naheliegendes Beispiel ist das deutsche Sprachpaket.</li><li>Wir haben uns im Rahmen einer FooCamp-Veranstaltung bewusst über sinnvolle Funktionalitäten eines solchen Moduls ausgetauscht und diese in ein Modul gegossen. Um die Installation übersichtlich zu halten, haben wir bewusst von der Unterteilung in mehrere Module abgesehen, die dann gemeinsam installiert werden.</li></ul><p><span
id="more-1524"></span><br
/> <a
href='http://www.mageblog.de/2012/02/15/neues-modul-germansetup-als-mrg-ersatz/firegento_rz_1/' title='firegento_rz_1'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/02/firegento_rz_1-150x150.jpg" class="attachment-thumbnail" alt="firegento_rz_1" title="firegento_rz_1" /></a> <a
href='http://www.mageblog.de/2012/02/15/neues-modul-germansetup-als-mrg-ersatz/screenshot176_1/' title='screenshot176_1'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/02/screenshot176_1-150x150.png" class="attachment-thumbnail" alt="screenshot176_1" title="screenshot176_1" /></a> <a
href='http://www.mageblog.de/2012/02/15/neues-modul-germansetup-als-mrg-ersatz/screenshot175_1/' title='screenshot175_1'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/02/screenshot175_1-150x150.png" class="attachment-thumbnail" alt="screenshot175_1" title="screenshot175_1" /></a> <a
href='http://www.mageblog.de/2012/02/15/neues-modul-germansetup-als-mrg-ersatz/screenshot174_1/' title='screenshot174_1'><img
width="150" height="150" src="http://www.mageblog.de/wp-content/uploads/2012/02/screenshot174_1-150x150.png" class="attachment-thumbnail" alt="screenshot174_1" title="screenshot174_1" /></a> <br
/> Andreas von Studnitz hat <a
title="Andreas von Studnitz über GermanSetup" href="http://www.avs-webentwicklung.de/nc/blog/artikel/magento-german-setup-die-alternative-zu-market-ready-germany-ua.html" target="_blank">einen weiteren Beitrag zu GermanSetup</a> verfasst, welcher das Modul noch etwas genauer vorstellt. Die Lektüre lohnt sich.</p><p>Die Features noch einmal kurz zusammengefasst:</p><h3>Features:</h3><ul><li>Steuereinstellungen und Steuerklassen für die ganze EU</li><li>Direkte Zuweisung der neuen Steuerklassen zu allen Produkten (konfigurierbar)</li><li>E-Mail-Vorlagen</li><li>Aktivierung von Bestellbedingungen</li><li>Erstellung von Standard-CMS-Seiten</li><li>Erweiterte Preisdarstellung mit MwSt. und Versandkosten &#8211; per Template anpassbar</li><li>Automatische Generierung von Meta-Daten</li><li>Liste empfohlener Module</li></ul><h3>Vorteile:</h3><ul><li>schlank, keine unnötigen Zusatzmodule</li><li>Kompatibel zu allen gängigen Versionen (z.B. Community Edition 1.4 bis 1.6)</li><li>Deinstallation problemlos möglich</li><li>Keine Rewrites, keine überlagerten Klassen</li><li>Installierbar zu beliebigen Zeitpunkten</li><li>Überschreiben von Daten nur auf Wunsch, nicht automatisch</li></ul><p>Wer Interesse am Modul gewonnen hat, kann dieses bei folgenden Quellen beziehen:</p><ul><li>Magento Connect: <a
title="GermanSetup bei Magento Connect" href="http://www.magentocommerce.com/magento-connect/german-setup-6623.html" target="_blank">http://www.magentocommerce.com/magento-connect/german-setup-6623.html</a></li><li>Github: <a
title="GermanSetup bei Github" href="https://github.com/firegento/firegento-germansetup" target="_blank">https://github.com/firegento/firegento-germansetup</a></li></ul><p>Wer Anmerkungen oder Wünsche zum Modul hat, kann dies natürlich hier im Blog als Kommentar hinterlegen oder direkt im <a
title="FireGento GermanSetup Issue Tracker" href="https://github.com/firegento/firegento-germansetup/issues" target="_blank">zugehörigen Github-Bugtracker</a> anmerken. Auch würden wir und unsere FireGento-Kollegen uns sehr über <a
title="GermanSetup bei Magento Connect" href="http://www.magentocommerce.com/magento-connect/german-setup-6623.html" target="_blank">Reviews im Magento-Connect</a> freuen. Viel Spaß beim Einsatz.<div
class="fblike_button" style="margin: 10px 0;"><iframe
src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.mageblog.de%2F2012%2F02%2F15%2Fneues-modul-germansetup-als-mrg-ersatz%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=verdana&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div> ]]></content:encoded> <wfw:commentRss>http://www.mageblog.de/2012/02/15/neues-modul-germansetup-als-mrg-ersatz/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>Vorsicht bei der Verwendung von isset() mit Arrays</title><link>http://www.mageblog.de/2011/12/16/vorsicht-bei-der-verwendung-von-isset-mit-arrays/</link> <comments>http://www.mageblog.de/2011/12/16/vorsicht-bei-der-verwendung-von-isset-mit-arrays/#comments</comments> <pubDate>Fri, 16 Dec 2011 14:44:45 +0000</pubDate> <dc:creator>David Fuhr</dc:creator> <category><![CDATA[Allgemein]]></category> <guid isPermaLink="false">http://www.mageblog.de/?p=1505</guid> <description><![CDATA[Manchmal sucht man Fehler, die man wieder und wieder überliest, weil man die falschen Annahmen getroffen hat und der Code oberflächlich richtig aussieht. Erfahrungsgemäß gibt es dann ein paar &#8220;übliche Verdächtige&#8221;, die man sich genauer anschaut. Zuweisungen im if-Statement, Vergleiche ohne Typprüfung, empty() und isset() sind dabei immer heiße Kandidaten. Wenn man die Handbuch-Seite zu [...]]]></description> <content:encoded><![CDATA[<p>Manchmal sucht man Fehler, die man wieder und wieder überliest, weil man die falschen Annahmen getroffen hat und der Code oberflächlich richtig aussieht. Erfahrungsgemäß gibt es dann ein paar &#8220;übliche Verdächtige&#8221;, die man sich genauer anschaut. Zuweisungen im <a
href="http://php.net/manual/control-structures.if.php">if-Statement</a>, Vergleiche ohne Typprüfung, <a
href="http://php.net/manual/empty.php"><code>empty()</code></a> und <a
href="http://php.net/manual/isset.php"><code>isset()</code></a> sind dabei immer heiße Kandidaten.</p><p>Wenn man die Handbuch-Seite zu <code>isset()</code> durchliest, klingt es, als wäre es problemlos möglich auch die Existenz von Array-Keys zu prüfen. Sogar ein <a
href="http://php.net/manual/function.isset.php#example-4726">schönes Beispiel</a> gibt es dazu:</p><div
class="wp_syntax"><div
class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000088;">$a</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'test'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'hello'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'pie'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'a'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'apple'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'test'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>            <span style="color: #666666; font-style: italic;">// TRUE</span>
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'foo'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>             <span style="color: #666666; font-style: italic;">// FALSE</span>
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'hello'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>           <span style="color: #666666; font-style: italic;">// FALSE</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// The key 'hello' equals NULL so is considered unset</span>
<span style="color: #666666; font-style: italic;">// If you want to check for NULL key values then try: </span>
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array_key_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'hello'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$a</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// TRUE</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Checking deeper array values</span>
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pie'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'a'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>        <span style="color: #666666; font-style: italic;">// TRUE</span>
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pie'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'b'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>        <span style="color: #666666; font-style: italic;">// FALSE</span>
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'cake'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'a'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'b'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// FALSE</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div><p>Doch ganz so einfach ist es leider nicht. <span
id="more-1505"></span> Interessant ist hier vor allem die letzte Zeile. Erst auf den zweiten Blick fällt auf, dass <strong>als erster Schlüssel &#8220;cake&#8221; statt &#8220;pie&#8221;</strong> verwendet wird. Und das ist der einzige Grund dafür, dass <code>FALSE</code> zurückgegeben wird. <strong>Ändert man nämlich den ersten Schlüssel auf &#8220;pie&#8221;, wird <code>TRUE</code> zurückgegeben</strong>, auch wenn der dritte Key nicht existiert:</p><div
class="wp_syntax"><div
class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000088;">$a</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'test'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'hello'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'pie'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'a'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'apple'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pie'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'a'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'b'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// TRUE</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div><p>Das Problem und die <a
href="http://php.net/manual/function.isset.php#47396">Lösung wird auch in einem Kommentar von 2004</a> angesprochen. Die Prüfung mit <code>isset()</code> reicht nicht aus. Zusätzlich muss auf den vorletzen Key mit <a
href="http://php.net/manual/function.is-array.php"><code>is_array()</code></a> geprüft werden:</p><div
class="wp_syntax"><div
class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
&nbsp;
<span style="color: #000088;">$a</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'test'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'hello'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">NULL</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'pie'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'a'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'apple'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">var_dump</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pie'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'a'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'b'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pie'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'a'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// FALSE</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div><p>Wichtig ist hier auch, dass man <strong>zuerst das <code>isset()</code> und danach das <code>is_array()</code></strong> schreibt, sonst bekommt man einen Undefined-index-Fehler, wenn der Schlüssel komplett nicht vorhanden ist. Ein alleinstehendes <code>isset()</code> in Verbindung mit einem Array sollte einen also immer misstrauisch machen. Je nach Fall sollte ein <code>is_array()</code> ergänzt oder ein <a
href="http://php.net/manual/function.array-key-exists.php"><code>array_key_exists()</code></a> bevorzugt werden.<div
class="fblike_button" style="margin: 10px 0;"><iframe
src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.mageblog.de%2F2011%2F12%2F16%2Fvorsicht-bei-der-verwendung-von-isset-mit-arrays%2F&amp;layout=standard&amp;show_faces=false&amp;width=450&amp;action=like&amp;font=verdana&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:25px"></iframe></div> ]]></content:encoded> <wfw:commentRss>http://www.mageblog.de/2011/12/16/vorsicht-bei-der-verwendung-von-isset-mit-arrays/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss><!-- Dynamic page generated in 2.866 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-18 10:38:17 -->

