Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: http://redaxo.org/slack/
Benutzeravatar
joachim123
Beiträge: 73
Registriert: 5. Feb 2007, 21:41
Wohnort: München
Kontaktdaten: Website

create_function() is deprecated in class.rex_article_base.inc.php unter PHP 7.2

23. Sep 2018, 14:12

hi all,

wegen Umstellung auf PHP 7.2 habe ich mehrere, ältere Webseiten mit Redaxo 4.x auf Redaxo 4.7.2 umgestellt. Bei diesen älteren Seiten machte Redaxo 5.x keinen Sinn, da ich alle Module hätte neu schreiben müssen. Bei einer Seite hatte ich plötzlich ein Problem, ich bekam einen Deprecated-Fehler bezüglich create_function() in der Datei class.rex_article_base.inc.php

Normalerweise macht ja ein Fix im Core nicht viel Sinn, aber die 4er Generation ist ja nun eine Sackgasse. Ich habe also (erfolgreich) wie folgt gefixt:

Code: Alles auswählen


    /*protected*/ function replaceLinks($content)
    {
        return preg_replace_callback(
            '@redaxo://(\d+)(?:-(\d+))?/?@i',
            function ($matches) {
                $secondParam = isset($matches[2])
                    ? $matches[2]
                    : (integer) $this->clang;
                return rex_getUrl($matches[1], $secondParam );
            },
            /*
            create_function(
                '$matches',
                'return rex_getUrl($matches[1], isset($matches[2]) ? $matches[2] : ' . (integer) $this->clang . ');'
            ),
            */
            $content
        );
    }

Hab den alten Code dokumentationshalber auskommentiert mal drinne gelassen. Haltet Ihr das für sinnvoll, oder gibt es bessere Lösung?
Immer dankbar für Tipps ;)

Grüsse, Joachim
am Ende wird alles gut.

Benutzeravatar
Thomas.Skerbis
Beiträge: 1380
Registriert: 4. Aug 2006, 14:06
Wohnort: Rheinberg
Kontaktdaten: Website Twitter

Re: create_function() is deprecated in class.rex_article_base.inc.php unter PHP 7.2

13. Okt 2018, 21:59

Hallo Joachim,
du kannst es gerne als PR hier https://github.com/redaxo/redaxo4 einreichen, dann wird es evtl. in einem Update mitgeliefert.
Thomas Skerbis

Bild | KLXM Crossmedia / Werbeagentur in Moers | https://klxm.de

Tricks zu REDAXO
https://friendsofredaxo.github.io/tricks/

Benutzeravatar
joachim123
Beiträge: 73
Registriert: 5. Feb 2007, 21:41
Wohnort: München
Kontaktdaten: Website

Re: create_function() is deprecated in class.rex_article_base.inc.php unter PHP 7.2

14. Okt 2018, 22:35

hi Thomas,

ah, wenn noch 4er Updates kommen mache ich im Laufe der Woche gerne mal einen PR...

Merci & Grüsse, Jo
am Ende wird alles gut.

teletubbie
Beiträge: 86
Registriert: 5. Aug 2008, 18:08

Re: create_function() is deprecated in class.rex_article_base.inc.php unter PHP 7.2

15. Okt 2018, 17:50

Ein vergleichbares Problem taucht bei mir ab der Version 7.2 auf. Allerdings in Verbindung mit TvsBlog 1.4.2. Mit der Version 7.1 scheint es noch zu laufen. Zumindest habe ich keine entsprechenden Fehlermeldungen entdecken können. :? Die Änderungen innerhalb der Hauptversionen scheinen doch etwas größer zu sein.
Warning: Use of undefined constant rdx4908_encrypt_callback - assumed 'rdx4908_encrypt_callback' (this will throw an Error in a future version of PHP) in /www/htdocs/123123/domain.de/redaxo/include/generated/templates/17.template on line 14

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/123123/domain.de/redaxo/include/generated/templates/17.template:14) in /www/htdocs/123123/domain.de/redaxo/include/addons/seo42/classes/class.seo42_utils.inc.php on line 855

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/123123/domain.de/redaxo/include/generated/templates/17.template:14) in /www/htdocs/123123/domain.de/redaxo/include/functions/function_rex_client_cache.inc.php on line 166
Warum ich hier bin? Meine Frustrationsgrenze wurde schon lange nicht mehr vollständig ausgelotet ... :-)

Benutzeravatar
joachim123
Beiträge: 73
Registriert: 5. Feb 2007, 21:41
Wohnort: München
Kontaktdaten: Website

Re: create_function() is deprecated in class.rex_article_base.inc.php unter PHP 7.2

16. Okt 2018, 22:39

hm, sehe nicht wirklich den Zusammenhang zwischen "undefined constant" und deprecated. Und "Cannot modify header information" ist ja nur eine Folge der Warnung. Denke, Du solltest hierzu einen eigenen Thread aufmachen, vor allem, weil es ja wohl ein AddOn betrifft und nicht den Core.
am Ende wird alles gut.

Zurück zu „Allgemeines [R4]“