LifecycleEventArgs::getObject()
和LifecycleEventArgs::getEntity()
之间有什么区别?
namespace AppEventListener;
use DoctrineCommonEventSubscriber;
use DoctrineORMEventLifecycleEventArgs;
use DoctrineORMEvents;
/**
* Class MyListener
*
* @package AppEventListener
*/
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()
方法来自doctrine/persistence
包提供的LifecycleEventArgs
类的父类。
当您想要为几个Doctrine实现(例如ORM和ODM(构建集成层时,基本事件类主要是有用的,在这种情况下,您将使用getObject()
。