Symfony \ Component \ Debug \ Exception \ FatalErrorException laravel Error

32

Recibo este error en mi nuevo proyecto Laravel. Estoy intentando ejecutar después de una nueva instalación.

Declaración de Symfony \ Component \ Translation \ TranslatorInterface :: setLocale ($ locale) debe ser compatible con Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale (string $ locale)

Kuldeep Raj
fuente
Instalación nueva: ¿no modificó nada? ¿En qué idioma está configurado config/app.php?
Jeremy Harris el
@JeremyHarris Sí, instalación completamente nueva. El idioma predeterminado es 'en'
Kuldeep Raj
Mismo problema justo después de construir hoy
Logan B. Lehman
¿Qué versión de PHP estás ejecutando?
Logan B. Lehman
Tengo el mismo error aquí. Es un proyecto más grande que funciona bien localmente en Windows xampp. Hace una semana tampoco tenía errores en el servidor (centOS como el sistema operativo de alojamiento en la nube). Hoy copié el proyecto 1: 1 en el servidor (incluida la carpeta del proveedor) y tuve este error en el servidor. También la reinstalación del compositor no ayuda. Local: Windows, PHP 7.2.11, funciona. Servidor: como centOS, PHP 7.2.24, este error.
Dario Eberhard el

Respuestas:

41

En mi servidor, las siguientes fueron configuraciones:

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

Solución: se agregó "symfony/translation": "4.3.8"en composer.json de la siguiente manera

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

y entonces

composer update

o (si la versión php no se recomienda en el servidor)

actualización del compositor --ignore-platform-reqs

zarpio
fuente
Usar PHP 7.2 también me resolvió el problema sin agregar "symfony / translation": "4.3.8"
icynets
41

composer updateObtuve el mismo error en PHP 7.2.3 después (symfony \ translation v4.3.8 => v4.4.0).

Resolví este problema con "symfony/translation": "4.3.8"mi composer.json.

Es una mala idea editar los archivos de los vendedores.

-

Editar:

Symfony doc dice Instalar PHP 7.2.5 o superior , por lo que si no desea agregar esta restricción en su archivo composer.json, puede actualizar su versión de PHP a 7.2.5+ (verifique primero la compatibilidad de otras bibliotecas).

Julien Moulin
fuente
3
Quiero confirmar que este es el mejor y más fácil método. Revertí el mío esta mañana después de tener problemas anoche y lo arreglé sin editar ningún archivo. Hay un defecto en la versión 4.4 de Symfony.
Brett
10
Esta debería ser la respuesta aceptada, ya que no requiere malas prácticas como editar un archivo de proveedor.
Logan B. Lehman el
Funciona como encanto!
Ahmad Albab
"symfony / translation": "4.3.8" no "symfony \ translation": "4.3.8"
Kuldeep Raj
13

Hoy recibí el mismo error y lo resolví con un poco de edición. Solo haz esto:
navega a

proveedor / symfony / contratos de traducción / LocaleAwareInteface.php

y elimine la stringpalabra clave de la setLocale()función.

Si obtiene este error después de esto:

Declaración de Symfony \ Component \ Translation \ Translator :: trans ($ id, array $ parameters = Array, $ domain = NULL, $ locale = NULL) debe ser compatible con Symfony \ Contracts \ Translation \ TranslatorInterface :: trans (string $ id , matriz $ parámetros = Array,? string $ domain = NULL,? string $ locale = NULL)

Solo navega a:

vendedor / symfony / translation-contratos / TranslatorInteface.php

y eliminar todas las stringpalabras clave de la trans()función

--EDITAR--

Si no desea editar archivos de proveedores, puede usar esto: abra su archivo composer.json y agréguelo en"require"

"symfony / translation": "4.3.8",

Luego abra su terminal y escriba esto:

actualización del compositor

Lokendra Soni
fuente
1
Tal vez es un error, supongo. Aún así, no sé la razón detrás de esto.
Kuldeep Raj
17
NO es una buena idea editar archivos de proveedores.
Mostafa Attia
1

No es un error

La última versión de los paquetes de Symfony requiere que la versión de PHP sea al menos 7.2.5

Cambie la versión de PHP a 7.2.5 o superior y debería funcionar.

Abhinav Saraswat
fuente
1
Si 4.4.X requiere php 7.2.5+, Composer no debería descargar la última versión si la versión actual de PHP es inferior a 7.2.5, ¿no es así?
Julien Moulin el
Sí, tiene usted razón. Composer debe descargar el paquete que es compatible con la versión actual de PHP.
Abhinav Saraswat
44
No es verdad. En el servidor, estoy usando php7.3 y todavía recibí este error
leeCoder
0

Encontré una solución simple a este problema después de roaming google tanto tiempo. Si pudiera ayudar a alguien. Actualización de su versión de PHP a 7.2 o más

 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

Seguir estos pasos debería ayudarlo a deshacerse de este problema

VishalParkash
fuente
0

En mi servidor, las siguientes fueron configuraciones:

PHP 7.2 Laravel Framework 6.*

Solución: se agregó "symfony / translation": "4.3.8" en composer.json de la siguiente manera

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

y entonces

composer update
Alex
fuente