Symfony 4.4: Melhorias na Injeção de Dependência (Parte 2)
Sintaxe YAML Aprimorada para as Chamadas de Método
As chamadas de método e a injeção de setter de serviço são maneiras diferentes de chamar alguns métodos em suas classes ao criar os serviços para elas. No Symfony 4.4, a sintaxe YAML foi aprimorada para torná-las mais concisas e fáceis de ler/gravar:
A chamada de métodos wither também foi simplificada:
Melhor Controle da Decoração de Serviço (Service Decoration)
A decoração de serviço é um dos recursos mais populares e poderosos da Injeção de Dependência do Symfony. No Symfony 4.4, ela foi aprimorado para que você possa controlar o que acontece quando o serviço decorado não existe:
Se o serviço App\Mailer
não existir, essa configuração dirá ao Symfony para ignorar o erro e remover o serviço App\NewMailer
. Os outros valores possíveis são exception
e null
.
O valor exception
diz ao Symfony para lançar uma ServiceNotFoundException
e é o valor padrão, pois corresponde ao comportamento atual. O valor null
torna o serviço decorado igual a null
, portanto, o serviço de decoração deve estar preparado para lidar com valores nulos.
Prioridades para Serviços Tagueados (Tagged Services)
Ao injetar serviços tagueados em outros serviços, você pode aplicar uma prioridade a esses serviços, da seguinte forma:
No entanto, a prioridade (20
neste exemplo) é a mesma para todos os serviços. No Symfony 4.4, esse recurso foi melhorado para permitir definir a prioridade por serviço. Para fazer isso, defina um método public static function getDefaultPriority(): int
em suas classes de serviço e retorne sua prioridade. Você pode configurar esse nome de método através do atributo default_priority_method
:
Tradução de: New in Symfony 4.4: Dependency Injection Improvements (Part 2)