Erro laravel do Symfony \ Component \ Debug \ Exception \ FatalErrorException

32

Estou recebendo esse erro no meu novo projeto do Laravel. Estou tentando executar após uma nova instalação.

A declaração do Symfony \ Component \ Translation \ TranslatorInterface :: setLocale ($ locale) deve ser compatível com Symfony \ Contracts \ Translation \ LocaleAwareInterface :: setLocale (string $ locale)

Kuldeep Raj
fonte
Nova instalação - você não modificou nada? Em que idioma está definido config/app.php?
Jeremy Harris
@JeremyHarris Sim instalação completamente nova. O idioma padrão é 'en'
Kuldeep Raj
Mesmo problema logo após a construção hoje
Logan B. Lehman
Qual versão do PHP você está executando?
Logan B. Lehman
Eu tenho o mesmo erro aqui. É um projeto maior que roda bem localmente no windows xampp. Há uma semana, também não havia erros no servidor (centOS, como o SO de hospedagem na nuvem). Hoje eu copiei o projeto 1: 1 para o servidor (incluindo a pasta do fornecedor) e tive esse erro no servidor. A reinstalação do compositor também não ajuda. Local: Windows, PHP 7.2.11, funciona. Servidor: centOS like, PHP 7.2.24, esse erro.
Dario Eberhard

Respostas:

41

No meu servidor, foram as seguintes configurações:

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

Solução: adicionada "symfony/translation": "4.3.8"em composer.json da seguinte maneira

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

e depois

composer update

ou (se a versão php não for recomendada no servidor)

atualização do compositor --ignore-platform-reqs

zarpio
fonte
O uso do PHP 7.2 também resolveu o problema para mim sem adicionar o "symfony / translation": "4.3.8"
icynets
41

Eu recebi o mesmo erro no PHP 7.2.3 depois composer update(symfony \ translation v4.3.8 => v4.4.0).

Resolvi esse problema "symfony/translation": "4.3.8"no meu compositor.json.

É uma má idéia editar arquivos de fornecedores.

-

Editar:

O documento do Symfony diz Instalar o PHP 7.2.5 ou superior ; portanto, se você não quiser adicionar essa restrição ao seu arquivo composer.json, poderá atualizar sua versão do PHP para 7.2.5+ (verifique primeiro a compatibilidade de outras bibliotecas).

Julien Moulin
fonte
3
Quero confirmar que este é o método mais fácil e fácil. Revirei o meu esta manhã depois de ter problemas ontem à noite e o corrigi sem editar nenhum arquivo. Há um defeito na versão 4.4 do Symfony.
Brett
10
Essa deve ser a resposta aceita, pois não requer práticas ruins, como editar um arquivo de fornecedor.
Logan B. Lehman
Funciona como charme!
Ahmad Albab 07/12/19
"symfony / translation": "4.3.8" not "symfony \ translation": "4.3.8"
Kuldeep Raj
13

Recebi o mesmo erro hoje e resolvi-o com uma pequena edição. Basta fazer o seguinte:
Navegue para

fornecedor / symfony / contratos de tradução / LocaleAwareInteface.php

e exclua a stringpalavra-chave da setLocale()função.

Se você receber este erro depois disso:

A declaração do Symfony \ Component \ Translation \ Translator :: trans ($ id, array $ parameters = Array, $ domain = NULL, $ locale = NULL) deve ser compatível com Symfony \ Contracts \ Translation \ TranslatorInterface :: trans (string $ id , array $ parameters = Array,? string $ domain = NULL,? string $ locale = NULL)

Basta navegar para:

fornecedor / symfony / contratos de tradução / TranslatorInteface.php

e exclua todas as stringpalavras-chave da trans()função

--EDITAR--

Se você não deseja editar os arquivos do fornecedor, pode usar o seguinte: Abra o arquivo composer.json e adicione-o em"require"

"symfony / tradução": "4.3.8",

Em seguida, abra seu terminal e digite:

atualização do compositor

Lokendra Soni
fonte
11
Talvez seja um bug, eu acho. Ainda assim, não sei a razão por trás disso.
Kuldeep Raj
17
NÃO é uma boa ideia editar arquivos de fornecedores.
Mostafa Attia
1

Não é um inseto.

A versão mais recente dos pacotes symfony requer que a versão PHP seja pelo menos 7.2.5

Mude a versão do PHP para 7.2.5 ou superior e deve funcionar.

Abhinav Saraswat
fonte
11
Se o 4.4.X requer o php 7.2.5+, o Composer não deve baixar a versão mais recente se a versão atual do PHP for menor que 7.2.5, não é?
Julian Moulin
Sim você está certo. O Composer deve baixar o pacote que é suportado na versão atual do PHP.
Abhinav Saraswat
4
Não é verdade. No servidor, eu estou usando php7.3 e eu ainda tenho esse erro
leeCoder
0

Encontrei solução simples para esse problema depois de roaming no google por tanto tempo. Se isso pudesse ajudar alguém. Atualizando sua versão do PHP para 7.2 ou mais

 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 estas etapas deve ajudar você a se livrar desse problema

VishalParkash
fonte
0

No meu servidor, foram as seguintes configurações:

PHP 7.2 Laravel Framework 6.*

Solução: "symfony / translation" adicionado: "4.3.8" no compositer.json da seguinte maneira

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

e depois

composer update
Alex
fonte