{"id":801,"date":"2011-11-08T16:58:02","date_gmt":"2011-11-08T14:58:02","guid":{"rendered":"http:\/\/blog.gambio.de\/?p=801"},"modified":"2011-11-08T16:58:02","modified_gmt":"2011-11-08T14:58:02","slug":"entwickler-preview-class-overloading","status":"publish","type":"post","link":"https:\/\/www.gambio.de\/blog\/entwickler-preview-class-overloading\/","title":{"rendered":"Entwickler-Preview: Class-Overloading"},"content":{"rendered":"<p>Im Forum haben wir letzte Woche eine Entwickler-Preview auf die Implementation des Class-Overloadings bereitgestellt. Es handelt sich hierbei wie gesagt um eine Entwickler-Version. Diese dient ausschlie\u00dflich der Demonstration des kommenden Klassenmodels und ist auf keinen Fall f\u00fcr den produktiven Einsatz geeignet.<\/p>\n<p>Mit dem kommenden Service Pack f\u00fchren wir ein System zum Class-Overloading in weite Teile des Shops ein. Damit k\u00f6nnen Code-Anpassungen an allen Klassen in z.B. includes\/classes und includes\/modules update-sicher vorgenommen werden.<\/p>\n<p>Nehmen wir an, wir wollen die Klasse xtcPrice \u00fcberladen. Hierf\u00fcr muss im Vezeichnis user_classes\/overloads ein Unterverzeichnis angelegt werden, dessen Name dem der zu \u00fcberladenen Klasse entspricht, d.h. in diesem Fall ein Unterverzeichnis &#8222;xtcPrice&#8220;.<\/p>\n<p>In diesem Unterverzeichnis legen wir nun eine PHP-Datei an, die die Klassendefinition der erweiternden Klasse enth\u00e4lt, z.B. der Klasse &#8222;test1_xtcPrice&#8220;. Der Name dieser PHP-Datei muss folgenden Aufbau haben: KLASSENNAME.inc.php, d.h. in diesem Beispiel also &#8222;test1_xtcPrice.inc.php&#8220;<\/p>\n<p>Die neu Klasse &#8222;test1_xtcPrice&#8220; soll im Code dabei nicht direkt von der Klasse &#8222;xtcPrice&#8220; erben, sondern von der Klasse &#8222;test1_xtcPrice_parent&#8220;. Hier muss also unbedingt auf die Endung &#8222;_parent&#8220; geachtet werden. Die fertige Klassendefinition sind somit wie folgt aus:<\/p>\n<p><em>class test1_xtcPrice extends test1_xtcPrice_parent {<\/em><br \/>\n<em>\u00a0\u00a0 \u00a0&#8230;<\/em><br \/>\n<em>}<\/em><\/p>\n<p>Ein fertiges Code-Beispiel, mit der die Ausgabe der Methode xtcPrice-&gt;xtcFormat() update-sicher manipuiliert wird, befindet sich in der Preview im Verzeichnis user_classes\/overloads\/_samples\/xtcPrice.<\/p>\n<p>Mehrfaches \u00dcberladen der selben Klasse durch verschiedene Entwickler ist ebenfalls m\u00f6glich. Ein Beispiel daf\u00fcr befindet sich im Verzeichnis user_classes\/overloads\/_samples\/FooterContentView. Hier liegen mehrere Klassen, die alle die FooterContentView nacheinander \u00fcberladen, um die Ausgabe des Footers zu manipulieren.<\/p>\n<p>Die Einf\u00fchrung dieses Konzepts ist ein weiterer Schritt zur update-sicheren Modulentwicklung f\u00fcr den Shop. In den n\u00e4chsten Schritten<br \/>\nwerden wir weitere Bereiche des Shops an dieses Konzept anpassen, insbesondere die f\u00fcr die Frontend-Verwaltung, da diese f\u00fcr die meisten Modulentwickler die wichtigsten Bereiche sein d\u00fcrften.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Forum haben wir letzte Woche eine Entwickler-Preview auf die Implementation des Class-Overloadings bereitgestellt. Es handelt sich hierbei wie gesagt um eine Entwickler-Version. Diese dient ausschlie\u00dflich der Demonstration des kommenden Klassenmodels und ist auf keinen Fall f\u00fcr den produktiven Einsatz geeignet. Mit dem kommenden Service Pack f\u00fchren wir ein System zum Class-Overloading in weite Teile [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,3,4,20],"tags":[],"class_list":["post-801","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-entwicklung","category-features","category-news"],"_links":{"self":[{"href":"https:\/\/www.gambio.de\/blog\/wp-json\/wp\/v2\/posts\/801","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gambio.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gambio.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gambio.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gambio.de\/blog\/wp-json\/wp\/v2\/comments?post=801"}],"version-history":[{"count":3,"href":"https:\/\/www.gambio.de\/blog\/wp-json\/wp\/v2\/posts\/801\/revisions"}],"predecessor-version":[{"id":804,"href":"https:\/\/www.gambio.de\/blog\/wp-json\/wp\/v2\/posts\/801\/revisions\/804"}],"wp:attachment":[{"href":"https:\/\/www.gambio.de\/blog\/wp-json\/wp\/v2\/media?parent=801"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gambio.de\/blog\/wp-json\/wp\/v2\/categories?post=801"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gambio.de\/blog\/wp-json\/wp\/v2\/tags?post=801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}