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.


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


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).


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


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.


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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.