Skip to content
Marat edited this page Nov 2, 2019 · 1 revision

Weiterführende Infos:

Module aktualisieren:

Es gibt 3 Fälle, die hierbei von Bedeutung sind:

  • mit Zend Guard / Optimizer verschlüsselte Module
    Diese Module wurden für eine bestimmte PHP-Versionen verschlüselt, z.B 5.6. Zend Guard gibt es aber nicht mehr für PHP 7, somit müsst ihr beim Modul-Anbieter entweder eine unverschlüsselte oder eine mit Ioncube verschlüsselte Version anfragen.

  • mit Ioncube verschlüsselte Module
    Wenn das Modul mit einer halbwegs aktuellen Ioncube Version verschlüsselt wurde, funktioniert die Ioncube Verschlüsselung ab PHP 5.6 auch in PHP 7. Hier müsst ihr es einfach ausprobieren. Wenn die Ioncube-Fehlermeldung kommt, probiert eine neuere Version des Moduls.

  • unverschlüselte Module
    Hier dürfte es keine Probleme geben, wenn Module die Framework-Funktionen nutzen, um Daten aus der DB abzufragen.

Änderugnen von PHP 5.6 zu 7.3:

mysql -> mysqli

Die größte Änderung betrifft die Verbindung mit der Datenbank: der mysql Treiber wurde durch mysqli ersetz.
Sucht im Source Code nach Funtionen mit "mysql_" im Namen, z.B.: "mysql_query", "mysql_error" oder "mysql_real_escape_string". Diese Funktionen müssen sie durch die entsprechenden mysqli_* Gegenstücke ersetzt werden.

Typisierung von PHP Fehlern

Die Fehler im PHP-Code sind jetzt vom Typ "Throwable" und nicht mehr "Error" und "Exception". Die internen Fehlerverarbeitungsfunktionen von OXID müssen daher von Exception und Error auf Throwable umgestellt werden, damit der Shop Fehler sinnvoll verarbeiten kann, sonst kommt immer nur eine wenig hilfreiche Fehlermeldung:

PHP Fatal error: Uncaught TypeError: Argument 1 passed to ...\ExceptionHandler::handleUncaughtException() must be an instance of Exception, instance of ParseError given

... weitere Infos folgen in Kürze