str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated

  • Affected Version
    WoltLab Suite 5.4
    Affected App
    WoltLab Suite Core

    Mir ist bekannt das PHP 8.1 nicht offiziell unterstütz wird.

    Bei der Ankündigung über Aktualisierung für ein Paket kam es zur folgenden Fehlermeldung.


    Requested URL
    GET /
    Referrer
    https://www.wiederladeforum.de/
    Error Message
    str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated
    Type
    wcf\system\exception\ErrorException
    File (Line)
    /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/system/WCF.class.php (344)
    Template Context
    <div><?php if (OFFLINE_MESSAGE_ALLOW_HTML) { ?><?=$this->pluginObjects['wcf\system\template\plugin\LanguageModifierTemplatePlugin']->execute([OFFLINE_MESSAGE], $this);?><?php } else { ?><?=$this->pluginObjects['wcf\system\template\plugin\NewlineToBreakModifierTemplatePlugin']->execute([$this->pluginObjects['wcf\system\template\plugin\LanguageModifierTemplatePlugin']->execute([OFFLINE_MESSAGE], $this)], $this);?><?php } ?></div> </div> <?php } ?> ====> <?php if ($this->v['__wcf']->session->getPermission('admin.configuration.package.canUpdatePackage') && $this->v['__wcf']->getAvailableUpdates() && SHOW_UPDATE_NOTICE_FRONTEND) { ?> <p class="info" role="status">Es sind <a href="<?php $this->tagStack[] = ['link', ['controller' => 'PackageUpdate', 'isACP' => true]]; $this->pluginObjects['wcf\system\template\plugin\LinkBlockTemplatePlugin']->init($this->tagStack[count($this->tagStack) - 1][1], $this); while ($this->pluginObjects['wcf\system\template\plugin\LinkBlockTemplatePlugin']->next($this)) { ob_start(); ?><?php echo $this->pluginObjects['wcf\system\template\plugin\LinkBlockTemplatePlugin']->execute($this->tagStack[count($this->tagStack) - 1][1], ob_get_clean(), $this); } array_pop($this->tagStack);?>">Aktualisierungen für installierte Pakete</a> verfügbar.</p> <?php } ?>
    Stacktrace
    1. [internal function] (?): wcf\system\WCF::handleError(…)
    2. /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/data/package/Package.class.php (435): str_replace(…)
    3. /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/data/package/Package.class.php (417): wcf\data\package\Package::formatVersionForCompare(…)
    4. /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/system/package/PackageUpdateDispatcher.class.php (818): wcf\data\package\Package::compareVersion(…)
    5. /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/system/cache/builder/PackageUpdateCacheBuilder.class.php (22): wcf\system\package\PackageUpdateDispatcher->getAvailableUpdates(…)
    6. /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/system/cache/builder/AbstractCacheBuilder.class.php (42): wcf\system\cache\builder\PackageUpdateCacheBuilder->rebuild(…)
    7. /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/system/WCF.class.php (1145): wcf\system\cache\builder\AbstractCacheBuilder->getData(…)
    8. /homepages/36/d488721828/htdocs/wiederladen/wcf/templates/compiled/5_wbb_1_boardList.php (2819): wcf\system\WCF->getAvailableUpdates(…)
    9. /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/system/template/TemplateEngine.class.php (346): include(…)
    10. /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/page/AbstractPage.class.php (371): wcf\system\template\TemplateEngine->display(…)
    11. /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/page/AbstractPage.class.php (122): wcf\page\AbstractPage->show(…)
    12. /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/system/request/Request.class.php (89): wcf\page\AbstractPage->__run(…)
    13. /homepages/36/d488721828/htdocs/wiederladen/wcf/lib/system/request/RequestHandler.class.php (121): wcf\system\request\Request->execute(…)
    14. /homepages/36/d488721828/htdocs/wiederladen/index.php (11): wcf\system\request\RequestHandler->handle(…)

    Ich tue recht und scheue keinen Feind.

  • Mir ist bekannt das PHP 8.1 nicht offiziell unterstütz wird.

    Wie kommst du darauf?


    In der Systemüberprüfung im ACP steht etwas anderes:

    Quote

    Es wird mindestens PHP 7.2.24 benötigt, empfohlen werden die folgenden Versionsreihen von PHP: 8.0, 8.1.

    Hast du denn Testweise die PHP Version mal auf 8.0 umgestellt und geguckt ob der Fehler bleibt?

  • Das widerspricht sich dann aber mit dem ACP-Hinweis. :rolleyes: Hier wäre es mal ganz gut wenn mal so langsam klare Kante gezeigt wird was nun konkret in Zukunft unterstützt wird. Mit diesen ganzen unterschiedlichen PHP Versionen sieht ja bald keiner mehr durch.

    • Official Post

    Die Unterstützung von PHP 8.1 in WoltLab Suite 5.4 ist nur temporär, offiziell wird nur bis PHP 8.0 unterstützt. WoltLab Suite 5.5 unterstützt PHP 7.4 bis 8.1, wobei technisch die Mindestversion PHP 7.2 ist, aber dies wird nicht gewährleistet oder von uns anderweitig unterstützt. Dies ist letztlich alles der Realität im Hosting geschuldet, bei der wir Kompromisse eingehen müssen, damit die Software bestmöglich lauffähig ist.

    Alexander Ebert
    Senior Developer WoltLab® GmbH

  • In der Systemüberprüfung im ACP steht etwas anderes:

    Du hast vermutlich bei 5.5 geschaut.


    Es geht um Version 5.4 und dort steht im ACP in der Systemprüfung:


    Gruß Markus


    WoltLab Suite 5.4.25

  • Hast du denn Testweise die PHP Version mal auf 8.0 umgestellt und geguckt ob der Fehler bleibt?

    Selbstverständlich.

    Mit PHP 8.0 läuft ja auch alles.

    Ich tue recht und scheue keinen Feind.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!