Skip to content

Instantly share code, notes, and snippets.

@instabledesign
Created January 24, 2024 10:46
Show Gist options
  • Save instabledesign/0de022b28cd6210f56e635ceec62cbf9 to your computer and use it in GitHub Desktop.
Save instabledesign/0de022b28cd6210f56e635ceec62cbf9 to your computer and use it in GitHub Desktop.
PHP Symfony dépendance logger

Le logger est une dépendance qui peux être considérer comme optionnel.

Il est donc préférable de l'injecter par setter en utilisant le LoggerAwareInterface + LoggerAwareTrait

Il faut ensuite de systématiquement utiliser la syntaxe $this->logger?->...

ℹ️ l'autowire de symfony injecte le logger sur les classe qui implement LoggerAwareInterface https://github.com/symfony/symfony/blob/6.4/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php#L673-L674

Cette pratique permet d'alleger les définitions de service et aussi de simplifier les Tests

class MyObject implement LoggerAwareInterface
{
use LoggerAwareTrait;
...
public function myFun()
{
$this->logger?->info('my log message');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment