Symfony \ Component \ Debug \ Exception \ FatalErrorException laravel Fehler

32

Ich erhalte diesen Fehler bei meinem neuen Laravel-Projekt. Ich versuche nach einer Neuinstallation zu laufen.

Die Deklaration von Symfony \ Component \ Translation \ TranslatorInterface :: setLocale ($ locale) muss mit Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale (string $ locale) kompatibel sein.

Kuldeep Raj
quelle
Neuinstallation - Sie haben nichts geändert? In welcher Sprache ist eingestellt config/app.php?
Jeremy Harris
@ JeremyHarris Ja komplett neue Installation. Die Standardsprache ist 'en'
Kuldeep Raj
Gleiches Problem kurz nach dem Bau heute
Logan B. Lehman
Welche Version von PHP verwenden Sie?
Logan B. Lehman
Ich habe hier den gleichen Fehler. Es ist ein größeres Projekt, das lokal unter Windows xampp gut läuft. Vor einer Woche hatte es auch keinen Fehler auf dem Server (CentOS wie Cloud-Hosting-Betriebssystem). Heute habe ich das Projekt 1: 1 auf den Server (einschließlich Vendor Ordner) kopiert und hatte diesen Fehler dann auf dem Server. Auch die Neuinstallation des Komponisten hilft nicht. Lokal: Windows, PHP 7.2.11, funktioniert. Server: centOS wie PHP 7.2.24, dieser Fehler.
Dario Eberhard

Antworten:

41

Auf meinem Server waren folgende Konfigurationen:

PHP 7.1.26-1 + ubuntu14.04.1 + deb.sury.org + 1 Laravel Framework 5.7.28

Lösung:"symfony/translation": "4.3.8" In composer.json wie folgt hinzugefügt

"require": {
     ...
     "symfony/translation": "4.3.8",
}

und dann

composer update

oder (wenn die PHP-Version auf dem Server nicht empfohlen wird)

Komponisten-Update --ignore-platform-reqs

Zarpio
quelle
Die Verwendung von PHP 7.2 löste auch das Problem für mich, ohne die "Symfony / Übersetzung" hinzuzufügen: "4.3.8"
icynets
41

Ich habe den gleichen Fehler unter PHP 7.2.3 nach composer update(symfony \ translation v4.3.8 => v4.4.0) erhalten.

Ich habe dieses Problem mit "symfony/translation": "4.3.8"in meiner composer.json gelöst .

Es ist eine schlechte Idee, Herstellerdateien hart zu bearbeiten.

- -

Bearbeiten:

In Symfony-Dokument heißt es: PHP 7.2.5 oder höher installieren. Wenn Sie diese Einschränkung also nicht in die Datei composer.json aufnehmen möchten, können Sie Ihre PHP-Version auf 7.2.5+ aktualisieren (überprüfen Sie zuerst die Kompatibilität anderer Bibliotheken).

Julien Moulin
quelle
3
Ich möchte bestätigen, dass dies die einfachste und beste Methode ist. Rollte meine heute Morgen zurück, nachdem ich letzte Nacht Probleme hatte, und reparierte sie, ohne irgendwelche Dateien zu bearbeiten. In der 4.4-Version von Symfony ist ein Fehler aufgetreten.
Brett
10
Dies sollte die akzeptierte Antwort sein, da keine schlechten Praktiken wie das Bearbeiten einer Herstellerdatei erforderlich sind.
Logan B. Lehman
Funktioniert wie Charme!
Ahmad Albab
"Symfony / Übersetzung": "4.3.8" nicht "Symfony \ Übersetzung": "4.3.8"
Kuldeep Raj
13

Ich habe heute den gleichen Fehler bekommen und ihn mit ein wenig Bearbeitung gelöst. Tun Sie dies einfach:
Navigieren Sie zu

Anbieter / Symfony / Übersetzungsverträge / LocaleAwareInteface.php

und löschen Sie das stringSchlüsselwort aus der setLocale()Funktion.

Wenn Sie diesen Fehler danach erhalten:

Die Deklaration von Symfony \ Component \ Translation \ Translator :: trans ($ id, Array $ parameters = Array, $ domain = NULL, $ locale = NULL) muss mit Symfony \ Contracts \ Translation \ TranslatorInterface :: trans (Zeichenfolge $ id) kompatibel sein , array $ parameters = Array ,? string $ domain = NULL ,? string $ locale = NULL)

Navigieren Sie einfach zu:

Anbieter / Symfony / Übersetzungsverträge / TranslatorInteface.php

und löschen Sie alle stringSchlüsselwörter aus der trans()Funktion

--BEARBEITEN--

Wenn Sie keine Herstellerdateien bearbeiten möchten, können Sie Folgendes verwenden: Öffnen Sie die Datei composer.json und fügen Sie diese hinzu"require"

"Symfony / Übersetzung": "4.3.8",

Öffnen Sie dann Ihr Terminal und geben Sie Folgendes ein:

Komponisten-Update

Lokendra Soni
quelle
1
Vielleicht ist es ein Fehler, denke ich. Trotzdem kenne ich den Grund dafür nicht.
Kuldeep Raj
17
KEINE gute Idee, Herstellerdateien zu bearbeiten.
Mostafa Attia
1

Es ist kein Fehler.

Für die neueste Version von Symfony-Paketen muss die PHP-Version mindestens 7.2.5 sein

Ändern Sie die PHP-Version auf 7.2.5 oder höher und es sollte funktionieren.

Abhinav Saraswat
quelle
1
Wenn 4.4.X PHP 7.2.5+ erfordert, sollte Composer nicht die neueste Version herunterladen, wenn die aktuelle PHP-Version weniger als 7.2.5 ist, nicht wahr?
Julien Moulin
Ja, du hast recht. Composer sollte das Paket herunterladen, das in der aktuellen PHP-Version unterstützt wird.
Abhinav Saraswat
4
Nicht wahr. Auf dem Server verwende ich php7.3 und ich habe immer noch diesen Fehler
leeCoder
0

Ich habe nach so langem Roaming bei Google eine einfache Lösung für dieses Problem gefunden. Wenn es jemandem helfen könnte. Aktualisieren Sie Ihre PHP-Version auf 7.2 oder höher

 1. sudo a2dismod phpX(X is less than 7.2 version) 
 2. sudo a2enmod php7.2(could be greater than or equal to 7.2)
 3. service apache2 restart

Das Befolgen dieser Schritte sollte Ihnen helfen, dieses Problem zu beheben

VishalParkash
quelle
0

Auf meinem Server waren folgende Konfigurationen:

PHP 7.2 Laravel Framework 6.*

Lösung: "symfony / translation": "4.3.8" in composer.json wie folgt hinzugefügt

"require": {
     ...
     "symfony/translation": "4.3.8",
}

und dann

composer update
Alex
quelle