
Единственный правильный способ прокинуть логгер ☝️
Что не так с
• LoggerAwareInterface делает дыру в сервисе методом
• В LoggerAwareTrait свойство
PSR-3 я также комментировал в среду на стриме про трейты: https://youtu.be/xoEPNiMtVps?t=4069.
Что не так с
LoggerAware*
костылями:• LoggerAwareInterface делает дыру в сервисе методом
setLogger
. Да и как контракт он абсолютно бесполезен.• В LoggerAwareTrait свойство
logger
, что бы ни говорил phpdoc, имеет значение по умолчанию null и, соответственно, nullable тип. Значит его либо нужно всегда проверять if ($this->logger !== null)
, либо как в сниппете инициализировать в конструкторе пустым логгером, только уже не в качестве фоллбэка, а превентивно. В любом случае код получится более сложным и менее очевидным.PSR-3 я также комментировал в среду на стриме про трейты: https://youtu.be/xoEPNiMtVps?t=4069.