Как мы видим в официальной документации Doctrine реализует прослушиватели сущностей, которые выполняются только тогда, когда что-то происходит с конкретной сущностью.
Однако между прослушивателями / подписчиками событий жизненного цикла существует другая инъекцияи слушатели сущности.Фактически для слушателей / подписчиков Doctrine вводит только определенный объект LifecycleEventArgs
в определенные обратные вызовы
// Event listener/subscriber
public function postUpdate(LifecycleEventArgs $args)
{
$entity = $args->getEntity();
}
, который в любом случае дает вам доступ к объекту, но затем в слушателе объекта объект также вводится явно в качестве первого аргумента.
// Entity listener
public function postUpdate(object $entity, LifecycleEventArgs $args)
{
$entity2 = $args->getEntity();
}
, и он все еще доступен в $args
.Об этом также сообщается в документации:
Метод прослушивателя сущностей получает два аргумента: экземпляр сущности и событие жизненного цикла.
Но тогда в чем именно разница между $entity
и $args->getEntity()
в прослушивателе сущности?