Errore laravel di Symfony \ Component \ Debug \ Exception \ FatalErrorException


32

Ricevo questo errore sul mio nuovo progetto Laravel. Sto cercando di eseguire dopo una nuova installazione.

La dichiarazione di Symfony \ Component \ Translation \ TranslatorInterface :: setLocale ($ locale) deve essere compatibile con Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale (string $ locale)


Nuova installazione - non hai modificato nulla? In che lingua è impostata config/app.php?
Jeremy Harris

@JeremyHarris Sì, installazione completamente nuova. La lingua predefinita è 'en'
Kuldeep Raj

Stesso problema subito dopo la costruzione di oggi
Logan B. Lehman

Quale versione di PHP stai eseguendo?
Logan B. Lehman

Ho lo stesso errore qui. È un progetto più grande che funziona bene localmente su Windows xampp. Una settimana fa non si sono verificati errori sul server (centOS come il cloud hosting OS). Oggi ho copiato il progetto 1: 1 sul server (inclusa la cartella del fornitore) e ho riscontrato questo errore sul server. Anche la reinstallazione del compositore non aiuta. Locale: Windows, PHP 7.2.11, funziona. Server: centOS come, PHP 7.2.24, questo errore.
Dario Eberhard,

Risposte:


41

Sul mio server c'erano le seguenti configurazioni:

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

Soluzione: aggiunto "symfony/translation": "4.3.8"in composer.json come segue

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

e poi

composer update

oppure (se la versione php non è consigliata sul server)

aggiornamento del compositore --ignore-platform-reqs


L'utilizzo di PHP 7.2 ha anche risolto il problema senza l'aggiunta di "symfony / translation": "4.3.8"
icynets

41

Ho avuto lo stesso errore su PHP 7.2.3 dopo composer update (symfony \ translation v4.3.8 => v4.4.0).

Ho risolto questo problema con "symfony/translation": "4.3.8" mio compositore.json.

È una cattiva idea modificare i file dei fornitori.

-

Modificare:

Il documento di Symfony dice Installa PHP 7.2.5 o versioni successive , quindi se non vuoi aggiungere questa limitazione nel tuo file composer.json, puoi aggiornare la tua versione di PHP a 7.2.5+ (controlla prima la compatibilità delle altre librerie).


3
Voglio confermare che questo è il metodo più semplice e migliore. Il mio è tornato indietro stamattina dopo aver avuto problemi ieri sera e risolto senza modificare i file. C'è un difetto nella versione 4.4 di Symfony.
Brett,

10
Questa dovrebbe essere la risposta accettata, in quanto non richiede cattive pratiche come la modifica di un file del fornitore.
Logan B. Lehman,

Funziona come il fascino!
Ahmad Albab,

"symfony / translation": "4.3.8" non "symfony \ translation": "4.3.8"
Kuldeep Raj

13

Ho avuto lo stesso errore oggi e l'ho risolto con un piccolo editing. Fai questo:
vai a

vendor / symfony / traduzione-contratti / LocaleAwareInteface.php

ed elimina la stringparola chiave dalla setLocale()funzione.

Se ricevi questo errore dopo questo:

La dichiarazione di Symfony \ Component \ Translation \ Translator :: trans ($ id, array $ parametri = Array, $ domain = NULL, $ locale = NULL) deve essere compatibile con Symfony \ Contracts \ Translation \ TranslatorInterface :: trans (string $ id , array $ parametri = Array,? string $ domain = NULL,? string $ locale = NULL)

Vai a:

vendor / symfony / traduzione-contratti / TranslatorInteface.php

ed elimina tutte le stringparole chiave datrans() funzione

--MODIFICARE--

Se non si desidera modificare i file del fornitore, è possibile utilizzare questo: Aprire il file composer.json e aggiungerlo in"require"

"symfony / translation": "4.3.8",

Quindi apri il tuo terminale e digita questo:

aggiornamento del compositore


1
Forse è un bug suppongo. Tuttavia, non conosco il motivo dietro questo.
Kuldeep Raj,

17
NON è una buona idea modificare i file del fornitore.
Mostafa Attia,

1

Non è un errore.

L'ultima versione dei pacchetti di symfony richiede che la versione di PHP sia almeno 7.2.5

Cambia la versione di PHP in 7.2.5 o successive e dovrebbe funzionare.


1
Se 4.4.X richiede php 7.2.5+, Composer non dovrebbe scaricare l'ultima versione se l'attuale versione di PHP è inferiore a 7.2.5, non è vero?
Julien Moulin,

Si hai ragione. Composer dovrebbe scaricare il pacchetto che è supportato nella versione corrente di PHP.
Abhinav Saraswat,

4
Non vero. Sul server sto usando php7.3 e ho ancora questo errore
leeCoder

0

Ho trovato una soluzione semplice a questo problema dopo il roaming di Google così a lungo. Se potesse aiutare qualcuno. Aggiornamento della versione di PHP alla versione 7.2 o successiva

 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

Seguire questi passaggi dovrebbe aiutarti a sbarazzarti di questo problema


0

Sul mio server c'erano le seguenti configurazioni:

PHP 7.2 Laravel Framework 6.*

Soluzione: aggiunto "symfony / translation": "4.3.8" in composer.json come segue

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

e poi

composer update
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.