nach einer Teamviewer-Sitzung mit commander hat sich folgendes ergeben:
In PHP kleiner oder gleich 7.2 (vielleicht sogar auch noch in PHP 7.3) führt eine Änderung, die ich explizit für die Kompatibilität mit PHP 8.x in Version 2.4.5 vorgenommen habe, leider zu einem Fatal Error beim Drucken. Das ist leicht zu beheben, indem in der Datei layouter.php (im Unterverzeichnis php/utilities) in Zeile 261
mit der Änderung hast du eigentlich nur den Layout-Code auf die Vorversion zurück gedreht. Warum sollten deswegen jetzt zwei Bons rauskommen? Bist du dir sicher, dass du nicht noch eine andere Änderung gebraucht hast?
Mit der Anpassung für PHP 8.x tritt das Druckproblem auch unter PHP 7.4 auf - das war mir in der Testumgebung nicht aufgefallen, weil ich den Druck immer nur "simuliere".
Ich sehe keine praktikable Lösung, den Sourcecode so umzuschreiben, dass er sowohl für PHP 7.x als auch 8.x gleichermaßen funktioniert. Mit der geänderten Methodensignatur einer bestimmten Methode (jsonSerialize) haben die PHP-Designer zwar sauberen Code produziert, aber keine Abwärtskompatibilität mehr zu PHP 7 mehr möglich gemacht.
Das ist eine sehr unbefriedigende Situation für OrderSprinter, da die installed base vermutlich noch zu einem Großteil auf PHP 7 setzt, während Neuinstallationen i.d.R. PHP 8 nutzen.
Ich habe mich entschieden, nun auf PHP 8 zu setzen und einen Hinweis auf der Downloadseite zu hinterlassen, welche Stelle für PHP 7 angepasst werden muss.
so nur zur Information, hab PHP7.3 und deinen Hinweis berücksichtigt. Jetzt Druckt der Drucker wie befohlen, einmal und nicht zweimal.
Alles im grünen Bereich.
ich habe in der 2.4.7 die Software so umgebaut, dass die problematische Funktion, die sich nicht einheitlich für PHP 7 und 8 implementieren ließ, nicht mehr enthalten ist. Nun sollte OrderSprinter wieder ohne manuelle Nachbearbeitung in jeder Umgebung mit PHP 7 oder 8 laufen.