VirtueMart 3.8.8 und PHP 8

  • Liebes Forum,

    seit ich mein System auf PHP8 geupdated habe (Apache/2.4.46 (Unix) PHP/8.0.2), habe ich Probleme (Problembeschreibung s.u.) mit meiner lokalen VirtueMart-Installation, die auf dem VirtuePlanet-Theme »Smart« basiert.

    Mein erster Gedanke war, dass das Problem das VirtuePlanet-Theme sein müsste, im Forum dort teilte man mir aber mit, dass das Theme »Smart« mit PHP8 funktionieren würde. Den zusätzlichen Verweis, dass 3rd-Party-Applications Schuld an den Problemen sein könnten, kann ich ausschließen, da das Problem auch mit der Vanilla-Installation mit den von VirtuePlanet gelieferten Beispieldateien auftritt.

    Zudem gab der VirtuePlanet-Support jedoch an, dass VirtueMart 3.8.8 noch nicht voll kompatibel mit PHP 8 sei.


    Deshalb meine Frage: ist PHP8 noch zu sehr Neuland für VirtueMart oder gibt es ein paar Einstellungen, die es ermöglichen, das Eine mit dem Anderen erfolgreich zu betreiben?


    (Ich muss hier anmerken, dass ich von einer lokalen Installation spreche. Auf einem Produktivsystem würde ich sicherlich nicht die neueste PHP-Version einsetzen, aber ich, als ArchLinux-User hole mir ab und zu mal zu Hause eine blutige Nase mit einem Upgrade, versuche dann zu fixen und downgrade nur ungern als letzte Möglichkeit auf die stabilere Vorgängerversion. Wie gesagt – zu Hause…)


    Nun zur Problembeschreibung: Installation des Themes »Smart« funktioniert einwandfrei, erster Aufruf der Seite im Frontends ist problemlos. Die Seite scheint auch zu funktionieren, allerdings wenn man auf die Startseite durch Klick auf das Logo zurückkehren will, gelangt man auf die Fehlerseite mit der Fehlermeldung:


    Code
    1. #0 mysqli object is already closed

    Ein Klick auf »Zur Startseite wechseln« funktioniert dann nicht mehr (loop), letztendlich hilft nur, den Cache im Backend zu löschen.

    Ob ein solcher Fehler auch mit anderen Themes auftaucht, habe ich nicht verlässlich getestet. Ein Schnellschuss mit VirtueMart unter dem Protostar-Template schien keinen solchen Fehler hervorzurufen. Aber ich habe nicht wirklich ausreichend getestet.


    Viele Grüße,

    Flix

  • Servus,


    der mysql-Fehler ist in der Tat ein PHP 8.0-Problem gewesen, und wurde in einer der letzten noch nicht öffentlichen Dev-Versionen bereinigt, Milbo hatte da etwas geschrieben. Wenn Du gerne experimentierst, finden sich evtl. neue dev-Versionen unter dev.virtuemart.net. Wann die nächste kommt, weiß ich allerdings nicht genau. Ungerade Zahlen am Ende bedeuten immer Beta-Version, deshalb in der Produktion nur Versionen mit geraden Zahlen am Ende einsetzen. Es sei denn, man weiß, was man tut und hat alles getestet.


    VirtueMart bitte im Moment in der Produktion noch mit PHP 7.4 verwenden, Du hast es ja geschrieben, ich wollte es nur noch einmal betonen.


    PHP 8.0.x (siehe x später) verwende ich zum Testen, aber nicht für produktive Seiten. Meistens fange ich mit den aktuellen PHP-Versionen an, wenn sie mindestens ihre Unterversion x > 7 oder 8 erreicht haben, dann sind auch die meisten Bugs aus PHP raus.


    Es wurde viel an VirtueMart für PHP 8.0 gearbeitet, aber bis zur 3.8.8 ist noch nicht alles eingeflossen. Es gibt noch etliches zu tun.


    Grüße

    Stefan

  • Flix

    Hat das Label Gelöst: hinzugefügt