Heute geht es um die Thematik Class-Overloading beim Erstellen von Script-Dateien oder Modulen, die die Updatesicherheit bei einem Gambio Shopsystem erhöhen können.

Wofür braucht man das genau und welchen Mehrwert bietet diese Art von Programmierungen dem Shopbetreiber?

Folgendes erstmal zur Ausgangssituation:

Sie besitzen einen eigenen Onlineshop und mit der Zeit werden entweder aufgrund von Erweiterungen das System modifiziert oder es sollen neue Module implementiert bzw. programmiert werden. Nun werden diese Entwicklungen nicht „Updatesicher“ gestaltet, was bedeutet, dass die Änderungen an den Klassen der vorhandenen Originaldateien vorgenommen werden.

In gewissen Zeitabständen gibt es Servicepacks oder Masterupdates von Gambio, die man beispielsweise in seinem Internetshop von seinem externen Dienstleister einspielen lassen kann.

Nun gab es im Gambioshop an diverses Dateien Neuerungen und es erfordert, dass die modifizierten Originaldateien überschrieben werden müssen, um in den Genuss der neuen Features zu kommen.

Sämtliche Arbeiten und Anpassungen wären somit überschrieben und nicht mehr vorhanden, was absolut katastrophal wäre.

Also, wie bekommt man eine gewisse Sicherheit, dass die Daten und der Quellcode nicht überschrieben werden?

Das Zauberwort an dieser Stelle lautet: Class-Overloading

Dank der MainFactory kann man mit dem Überladen von PHP-Klassen das Verhalten und die Ausführung von Systemdateien beeinflussen ohne die Originaldatei anzufassen. Auch die multiple Überladung von Klassen ist hiermit möglich.

Damit das System so funktioniert, muss man sich an diverse Vorgaben halten, was den Aufbau der Datei und die Verzeichnisstruktur betrifft.

Beherzigt man diese Sachen, so kann man im Prinzip alles Überladen, was die MainFactory ausführt.

Laut Gambio sind derzeit folgende Verzeichnisse inkl. Unterverzeichnisse überladbar:

  • admin/includes/classes
  • admin/includes/gm/classes
  • gm/classes
  • GXEngine
  • GXMainComponents
  • includes/classes (außer includes/classes/scssphp)
  • includes/modules/order_total
  • includes/modules/payment
  • includes/modules/shipping
  • system/classes
  • system/core
  • system/extender
  • system/overloads

 

Des Weiteren gibt es das sogenannte Extender-System, welches zur Überladung benutzt werden kann. Hierzu mehr in einem anderen Beitrag.

Um nun zur eigentlichen Frage zurückzukommen:

Mit dem Overloading können Sie Kosten und Mehraufwand einsparen, wenn es um das Einspielen von Updates geht, da diese an zentralen Stellen ausgeführt werden und somit ohne Dokumentation ersichtlich ist, wo diese Dateien greifen.

Da das Thema relativ komplex ist, kann ich nur auf Bruchstücke und relevante Informationen für Sie als Shopbesitzer eingehen.

Wir als Full-Service-Agentur bedienen uns dieser Technik und versuchen die Updatesicherheit für Ihren Shop damit zu gewährleisten bzw. zu erhöhen.

Wenn Sie Unterstützung benötigen, so können Sie uns jederzeit kontaktieren und wir werden gemeinsam mit Ihnen eine Lösung erarbeiten. Rufen Sie uns an oder nutzen Sie unser Kontaktformular!