Contao-Camp 2024
Ergebnis 1 bis 8 von 8

Thema: Fatal error: Cannot use 'String' as class name as it is reserved - trotz Cacheleerung

  1. #1
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Frage Fatal error: Cannot use 'String' as class name as it is reserved - trotz Cacheleerung

    Ich habe Contao 4.4.7 installiert und danach meine 3.5er Datenbank drübergeschoben, Install neu aufgerufen, alles i.O. soweit.
    Die Erweiterungen von C3 habe ich alle nach system/modules kopiert. Danach bekam ich als Fehler im FE:
    PHP-Code:
    Fatal errorCannot use 'String' as class name as it is reserved in /xxx/vendor/contao/core-bundle/src/Resources/contao/library/Contao/String.php on line 33 
    Danach habe ich in alle C3-Erweiterungsverzeichnisse eine .skip-Datei reinkopiert, den Cache im Contao-Manager neu aufgebaut und auch zusätzlich den Inhalt von var/cache/prod gelöscht. Trotzdem bleibt die Fehlermeldung bestehen.

    Ich verwende PHP 7.1.

    In var/logs steht:
    PHP-Code:
    [2017-10-21 19:11:33app.CRITICALAn exception occurred. {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalErrorException(code: 0): Compile Error: Cannot use 'String' as class name as it is reserved at /xxx/vendor/contao/core-bundle/src/Resources/contao/library/Contao/String.php:33)"} [] 
    Was kann ich sonst noch tun? system/modules leeren und eine Erweiterung nach der anderen reinkopieren?

    EDIT: Jetzt ist system/modules sogar leer und der Fehler bleibt trotz Cache-Löschen.
    Geändert von Samson1964 (21.10.2017 um 18:31 Uhr)
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  2. #2
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    6.468
    Partner-ID
    107
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Frank,

    der Hinweis auf „String” ist ein Hinweis darauf, das eine der Erweiterungen nicht mit PHP 7 kompatibel ist.

    Wenn man eingrenzen kann, welche das ist, könnte man alle Dateien der Erweiterungen durchsuchen und durch „StringUtil” ersetzen.

    U.a. hier behandelt:
    https://community.contao.org/de/show...se-String-quot
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Contao-Sprechstunde
    Contao Schulungen: https://www.weitzeldesign.com/cms-co...chulungen.html
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://app.gitbook.com/@planepix/s/...-mit-contao-4/
    Contao 4 & Manager Hosterhinweise: https://github.com/contao/contao-manager/wiki

    Schon wieder ein Update?
    Glücklich sind die, die den Wert erkennen – und wertschätzen.
    „Muss man machen wie beim Zahnarzt. Der bestraft einen auch mit hohen Rechnungen wenn man die Pflege vernachlässigt.”

  3. #3
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Da von C4 nur der Core installiert ist und ich alle C3-Erweiterungen gelöscht habe, bleiben noch die von mir eingefügten alten Templates übrig. Voila: Und dort benutze ich gleich in dreien die String-Klasse, z.B.:
    PHP-Code:
    <?= \String::substr($item['teaser'],130?>
    Was ist eigentlich der beste Weg für die Migration von C3 auf 4? Alle Erweiterungen und Templates reinkopieren und dann wie ein Guppy suchen? Oder nichts kopieren und dann auf Fehlermeldungen prüfen?

    Übrigens ausgesprochen lästig: Das ständige Löschen des Cache per FTP (oder alternativ auf Konsole) nach jeder Änderung und das Herunterladen der Logdatei nach jeder Fehlermeldung. Früher gab es mal "Fehler anzeigen" und "Cache umgehen/ausschalten".
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  4. #4
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.076
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Soweit ich das verstehe, ist dafür jetzt die app_dev.php zuständig.

  5. #5
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    6.468
    Partner-ID
    107
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Samson1964 Beitrag anzeigen
    Was ist eigentlich der beste Weg für die Migration von C3 auf 4? Alle Erweiterungen und Templates reinkopieren und dann wie ein Guppy suchen? Oder nichts kopieren und dann auf Fehlermeldungen prüfen?
    Ich habe bei einigen Updates von Contao 3 auf Contao 4 die Erweiterungen direkt via Contao Manager installiert und dann im Anschluß die Datenbank aktualisiert. Das klappt prima im Gegensatz zum Übernehmen der 3er-Erweiterungen. Klar müssen die verwendeten Erweiterungen schon „Contao4ready” sein. In all meinen Fällen traf das zu. Lediglich dk_mmenu habe ich durch mobile_menu ersetzt. Bis zur vor kurzem aktualisierten GoogleMap-Erweiterung habe ich die Karten mit einem Marker einfach als iframe eingebunden.
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Contao-Sprechstunde
    Contao Schulungen: https://www.weitzeldesign.com/cms-co...chulungen.html
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://app.gitbook.com/@planepix/s/...-mit-contao-4/
    Contao 4 & Manager Hosterhinweise: https://github.com/contao/contao-manager/wiki

    Schon wieder ein Update?
    Glücklich sind die, die den Wert erkennen – und wertschätzen.
    „Muss man machen wie beim Zahnarzt. Der bestraft einen auch mit hohen Rechnungen wenn man die Pflege vernachlässigt.”

  6. #6
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    In einer eigenen Erweiterung, die ich vor einigen Wochen PHP-7-kompatibel gemacht habe, gibt es nach wie vor Probleme.

    In einem onsubmit_callback kracht es bei der Zeile:
    PHP-Code:
    $temp = \StringUtil::generateAlias($temp); 
    D.h. eigentlich erst später:
    Code:
    Fatal error: Cannot use 'String' as class name as it is reserved in /xxx/vendor/contao/core-bundle/src/Resources/contao/library/Contao/String.php on line 28
    String.php, Zeile 28:
    PHP-Code:
    class String extends \StringUtil
    {
     ....

    Was läuft hier falsch? Wenn ich \StringUtil aufrufe, darf Contao doch nicht auf \String zugreifen. Und selbst wenn das erlaubt wäre, ist doch spätestens in Zeile 12-14 Schluß:
    PHP-Code:
    if (PHP_VERSION_ID >= 70000) {
        throw new \
    RuntimeException('The String class cannot be used in PHP ' PHP_VERSION '. Use the StringUtil class instead.');

    Contao 4.4.12 mit PHP 7.1
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Irgendwo gibt es noch einen Zugriff auf \String statt \StringUtil. Bekommst du über app_dev.php einen genaueren Stack Trace?

  8. #8
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Manchmal hat man ein Brett vor dem Kopf...
    Neben meinem onsubmit_callback gab es noch ein save_callback bei einem Feld. Und dort stand noch String drin ...

    Sorry Spooky, das ich Deine kostbare Zeit mißbraucht habe.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •