В чем разница между LifecycleEventArgs::getObject() и LifecycleEventArgs::getEntity()?
namespace App\EventListener;
use Doctrine\Common\EventSubscriber;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Events;
/**
* Class MyListener
*
* @package App\EventListener
*/
class MyListener implements EventSubscriber
{
/**
* @return array|string[]
*/
public function getSubscribedEvents()
{
return [
Events::postUpdate,
];
}
/**
* @param LifecycleEventArgs $event
*/
public function postUpdate(LifecycleEventArgs $event)
{
$entity = $event->getEntity();
$object = $event->getObject();
$entity === $object; //true...
}
}
Насколько я могу судить, эти два метода возвращают один и тот же объект, т.е. они указывают на один и тот же экземпляр данной сущности.
Так всегда бывает?
Следует использовать одно вместо другого или это не имеет значения?






Нет никакой разницы. Метод getObject() происходит от родительского класса класса LifecycleEventArgs, который предоставляется пакетом doctrine/persistence.
Базовый класс событий в основном полезен, когда вы хотите создать уровень интеграции для нескольких реализаций Doctrine (например, ORM и ODM), и в этом случае вы должны использовать getObject().
Для ссылки на фактический код: github.com/doctrine/persistence/blob/…