Änderungen im Lazyloading ab Version 4.5.6
Vor Kurzem ist die aktuelle OXID eShop-Version 4.5.6 erschienen.
Leider wurden hier (grundlegende) Änderungen im Bezug am Lazyloading vorgenommen, welche zumindest hätten im Changelog vermerkt sein sollen. Das Szenario:
Hat man eine Datenbank-Tabelle erweitert (oxuser) und eigene Spalten (oxuser.smx_test, …) hinzugefügt, waren diese automatisch im oxuser-Objekt verfügbar (magic getter).
Mit Änderungen in der oxubase.php (“Bug 3463“) funktioniert dies leider ab 4.5.6 nicht mehr, sofern die Spaltennamen kleingeschrieben sind.
Die einfachste und wahrscheinlich auch sauberste Lösung ist es, alle eigenen kleingeschriebenen Datenbankfelder in Großbuchstaben umzuwandeln.
In unserem Beispiel wird aus smx_test ein SMX_TEST, z. B. mit folgendem SQL-Statement:
ALTER TABLE `oxuser` CHANGE `smx_test` `SMX_TEST` TINYINT( 1 ) NOT NULL DEFAULT ’0′;
Der Vollständigkeit halber noch der Link zur entsprechenden Mail in der OXID Dev-List.
Update vom 27. Januar 2012
Das OXID Dev-Team hat sich der Sache angenommen. Alles wird gut
Sorry, for so short comments for this issue. Now i’ll try to explain more what was done and why. Bug is fixed and nothing has to be changed in your modules. The main goal was to save query on lazy loading, for example if
article has 10 fields so on first load (when tmp files are not generated) it makes 10 queries to db to collect data. From now only 1 query is needed, no mater how many fields object has; this data is cached and used only
when needed. For this purpose was changed the lazy loading algorithm and data selecting query. It was changed from selecting numeric array to associative. And there was missed that in modules can be using
lowercase (or mixed) fields (in shop always uppercase. ). So fix is that returned data array all indexes are changed to uppercase. The fix will be released in 4.5.7. or you can take it from nightly builds.
Kategorie: Technisches

27. Januar 2012 um 11:00
Die Änderungen an der oxubase wurden durchgeführt, um an dieser Stelle die Performance zu verbessern. Dabei hat sich Bug #3463 eingeschlichen, der mit Severity = crash eingestuft und sofort gefixt wurde. Wer den Fix sofort benötigt, kann sich die Änderungen von http://svn.oxid-esales.com/ (alternativ: PartnerSVN) auschecken, ansonsten wird er mit der OXID eShop Version 4.5.7 veröffentlicht.