Symfony 4 Doctrine LifecycleEventArgs getEntity() 与 getObject()

Symfony 4 Doctrine LifecycleEventArgs getEntity() vs getObject()

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...
    }
}

据我所知,这两个方法 return 完全相同 object,即它们指向给定实体的相同实例。

总是这样吗?

应该用一个代替另一个吗?

没有区别。 getObject() 方法来自 LifecycleEventArgs class 的父 class,由 doctrine/persistence 包提供。

基础事件 class 主要用于为多个 Doctrine 实现(例如 ORM 和 ODM)构建集成层,在这种情况下您将使用 getObject().