Dompdf generiert nach Umstellung auf PHP 8.0 Fehler

  • Heidiho Forenanbieterbuddies!


    Ich hab meinen Server auf PHP 8.0 umgestellt. So weit ganz entspannt gelaufen. Nur seither erhalte ich folgende Fehlermeldung:


    Requested URL
    /lexicon/index.php?entry-pdf-export%2F49-barrelwobble%2F
    Referrer
    Error Message
    round(): Argument #1 ($num) must be of type int|float, string given
    Type
    TypeError
    File (Line)
    /home/.sites/137/site6633595/web/ascw/forum/lib/system/api/dompdf/src/Css/Style.php (3086)
    Stacktrace
    1. /home/.sites/137/site6633595/web/ascw/forum/lib/system/api/dompdf/src/Css/Style.php (3086): round(…)
    2. /home/.sites/137/site6633595/web/ascw/forum/lib/system/api/dompdf/src/Css/Style.php (858): Dompdf\Css\Style->set_z_index(…)
    3. /home/.sites/137/site6633595/web/ascw/forum/lib/system/api/dompdf/src/Css/Style.php (917): Dompdf\Css\Style->__set(…)
    4. /home/.sites/137/site6633595/web/ascw/forum/lib/system/api/dompdf/src/Renderer.php (178): Dompdf\Css\Style->__get(…)
    5. /home/.sites/137/site6633595/web/ascw/forum/lib/system/api/dompdf/src/FrameReflower/Page.php (148): Dompdf\Renderer->render(…)
    6. /home/.sites/137/site6633595/web/ascw/forum/lib/system/api/dompdf/src/FrameDecorator/AbstractFrameDecorator.php (895): Dompdf\FrameReflower\Page->reflow(…)
    7. /home/.sites/137/site6633595/web/ascw/forum/lib/system/api/dompdf/src/Dompdf.php (850): Dompdf\FrameDecorator\AbstractFrameDecorator->reflow(…)
    8. /home/.sites/137/site6633595/web/ascw/forum/lexicon/lib/action/EntryPdfExportAction.class.php (100): Dompdf\Dompdf->render(…)
    9. /home/.sites/137/site6633595/web/ascw/forum/lib/action/AbstractAction.class.php (47): lexicon\action\EntryPdfExportAction->execute(…)
    10. /home/.sites/137/site6633595/web/ascw/forum/lib/system/request/Request.class.php (83): wcf\action\AbstractAction->__run(…)
    11. /home/.sites/137/site6633595/web/ascw/forum/lib/system/request/RequestHandler.class.php (107): wcf\system\request\Request->execute(…)
    12. /home/.sites/137/site6633595/web/ascw/forum/lexicon/index.php (11): wcf\system\request\RequestHandler->handle(…)

    Ich hab auch herausgefunden, wie ich es hervorrufen kann. Ich weis nicht, ob es zuvor funktionierte. ;)

    Ich wusste nicht, dass es diesen Button im Lexikon gibt. 8o Dort auf das Drucken-Symbol drückt.

    Zuvor kamen jedoch keinerlei Fehlermeldungen diesbezüglich.


    Ich hab mir dann gedacht es wird vlt. mal Zeit das Paket upzudaten. Also habe ich das hier gefunden:

    https://github.com/dompdf/dompdf/releases

    Da ist die aktuellste Version 1.0.2. Die .tar.gz ist ohnehin kein gültiges Paket zur Installation im WCS.

    Im WCS steht interessanterweise die Version 3.0.2?! Sie sind jedoch beide vom Brian Sweeney. :/


    Was habe ich da noch nicht ganz verstanden? Hat jemand ähnliche Themen bei sich?


    Vielen Dank gleich mal vorweg!

  • Sie sind jedoch beide vom Brian Sweeney. :/


    In diesem Falle " aka VieCode " (denn dieser stellt das Paket für die WoltLab Suite zur Verfügung, Brian Sweeney die Bibliothek selbst). Die hier bereitgestellte Version entspricht der Version 1.0.1 der Bibliothek bei GitHub, verfügt daher über PHP 8-Unterstützung, allerdings nicht mehr über Unterstützung von PHP 5 - 7.0 (die es theoretisch für die WoltLab Suite < 5.2 bräuchte).

  • Das Lexikon ist wohl noch nicht mit PHP 8 kompatibel, informiere am besten den Autor und stelle vorübergehend auf PHP 7.4 zurück.

  • In diesem Falle " aka VieCode " (denn dieser stellt das Paket für die WoltLab Suite zur Verfügung, Brian Sweeney die Bibliothek selbst). Die hier bereitgestellte Version entspricht der Version 1.0.1 der Bibliothek bei GitHub, verfügt daher über PHP 8-Unterstützung, allerdings nicht mehr über Unterstützung von PHP 5 - 7.0 (die es theoretisch für die WoltLab Suite < 5.2 bräuchte).

    Das stimmt nicht. Es handelt sich um die aktuelle Version 1.0.2.

    Das Lexikon ist wohl noch nicht mit PHP 8 kompatibel, informiere am besten den Autor und stelle vorübergehend auf PHP 7.4 zurück.

    Auch das stimmt nicht. Das Lexikon selbst ist mit PHP 8.0 kompatibel. Für die Bibliothek dompdf wurde vor wochen das entsprechende Update veröffentlicht.


    Wie SoftCreatR richtig gesagt hat, benötigt dompdf eine höhere PHP-Version, welche vom WSC 5.2 theoretisch nicht unterstützt wird. Daher musste ich als minimale Voraussetzung das WSC 5.3 nehmen. Das gibt technisch keinen Grund, warum es sonst nicht im WSC 5.2 läuft, war aber auf Grund dieser PHP Voraussetzung eine notwendige Limitierung, da ich sonst das Plugin nicht im Plugin-Store veröffentlichen konnte. Du hast im Prinzip drei Möglichkeiten:

    1. Upgrade auf das WSC 5.3 (das Update war für alle WSC 5.2 Kunden sowieso kostenfrei) + Installation des dompdf Updates
    2. Downgrade der PHP Version auf 7.4
    3. Deaktivierung der PDF-Funktion im Lexikon.

    P.S. Wenn du Probleme hast, die offensichtlich vom Lexikon kommen, melde dich bitte bei mir direkt im Supportforum. Da wird dir in der Regel schneller geholfen.

  • Bei Woltlab und Viecode geize ich nicht.

    Wenn ein Unternehmen Leistung beim Kunden erbringt darf es dafür auch etwas erhalten. Ich bin sogar der Meinung es MUSS etwas verlangen um auch in Zukunft seinen Kunden diesen Mehrwert bieten zu können.

    Im Allgemeinen bin ich extrem sparsam geworden, da der Kunde leider allzu oft nicht im Zentrum steht.


    WoltLab und VieCode

    Vielen Dank für eure Leistung!


    Update gekauft.


    Edit: Unmittelbar nach dem Update (Anleitung hier) kam der Vorschlag zum Update von DomPDF.


    Thema erledigt. Vielen Dank an alle für die Hilfe!