1
resposta

Cannot autowire service "App\Service\ResponseFactory": argument "$sucesso" of method "__construct()" is type-hinted "bool", you should configure its value explicitly.

Estou seguindo o curso Symfony Parte 2: autenticação e HATEOAS e me deparei com o seguinte erro após criar a classe ResponseFactory:

"Cannot autowire service "App\Service\ResponseFactory": argument "$sucesso" of method "construct()" is type-hinted "bool", you should configure its value explicitly."  

Achei na documentação dizendo que só funciona com objetos e no caso sucesso é um atributo booleano. Mas, aparentemente não está sendo usava em injeção de dependência já que no curso a instancia dela é criada dentro dos métodos e não passada como parâmetro no construtor. Encontrei algumas questões parecidas no fórum, mas não solucionou no meu caso. Solucionei assim:

    App\Helper\ResponseFactory:
        autowire: false

Minha dúvida é porque do erro e se essa é a solução realmente correta. Muito obrigada!

1 resposta

Olá Daniela! Tudo bem?

O erro que você está enfrentando ocorre porque o Symfony não consegue fazer a injeção automática de dependência para o argumento $sucesso no método __construct() da classe ResponseFactory. O tipo-hint desse argumento é bool, mas o Symfony espera que você configure explicitamente o valor desse argumento.

A solução que você encontrou, desativando a injeção automática de dependência para a classe ResponseFactory, é uma forma de contornar esse erro. Ao desativar a injeção automática, você pode criar uma instância da classe ResponseFactory manualmente, passando o valor desejado para o argumento $sucesso.

No entanto, é importante ressaltar que essa solução não é a única possível. Dependendo do seu caso específico, pode haver outras maneiras de resolver esse problema. Por exemplo, você pode configurar o valor de $sucesso em um arquivo de configuração do Symfony ou usando um serviço de configuração.

Portanto, a solução que você encontrou pode funcionar para o seu caso, mas é sempre bom verificar se existem outras opções mais adequadas para a sua situação específica.

Espero ter ajudado!

Caso tenha dúvidas, fico à disposição.

Abraços e bons estudos!