Symfony 4.4: Melhorias na Injeção de Dependência (Parte 2)

Sintaxe YAML Aprimorada para as Chamadas de Método

Andréia Bohner
2 min readNov 29, 2019

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(): intem 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)

--

--