Merge pull request #532 from solocommand/master
Added support for getting documents in unified Doctrine Listener
This commit is contained in:
commit
f93a7d278f
|
@ -184,6 +184,26 @@ class Listener implements EventSubscriber
|
||||||
return strtolower($ref->getShortName());
|
return strtolower($ref->getShortName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides unified method for retrieving a doctrine object from an EventArgs instance
|
||||||
|
*
|
||||||
|
* @param EventArgs $eventArgs
|
||||||
|
* @return object Entity | Document
|
||||||
|
* @throws \RuntimeException if no valid getter is found.
|
||||||
|
*/
|
||||||
|
private function getDoctrineObject(EventArgs $eventArgs)
|
||||||
|
{
|
||||||
|
if (method_exists($eventArgs, 'getObject')) {
|
||||||
|
return $eventArgs->getObject();
|
||||||
|
} elseif (method_exists($eventArgs, 'getEntity')) {
|
||||||
|
return $eventArgs->getEntity();
|
||||||
|
} elseif (method_exists($eventArgs, 'getDocument')) {
|
||||||
|
return $eventArgs->getDocument();
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new \RuntimeException('Unable to retrieve object from EventArgs.');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return bool|ExpressionLanguage
|
* @return bool|ExpressionLanguage
|
||||||
*/
|
*/
|
||||||
|
@ -202,7 +222,7 @@ class Listener implements EventSubscriber
|
||||||
|
|
||||||
public function postPersist(EventArgs $eventArgs)
|
public function postPersist(EventArgs $eventArgs)
|
||||||
{
|
{
|
||||||
$entity = $eventArgs->getEntity();
|
$entity = $this->getDoctrineObject($eventArgs);
|
||||||
|
|
||||||
if ($entity instanceof $this->objectClass && $this->isObjectIndexable($entity)) {
|
if ($entity instanceof $this->objectClass && $this->isObjectIndexable($entity)) {
|
||||||
$this->scheduledForInsertion[] = $entity;
|
$this->scheduledForInsertion[] = $entity;
|
||||||
|
@ -211,7 +231,7 @@ class Listener implements EventSubscriber
|
||||||
|
|
||||||
public function postUpdate(EventArgs $eventArgs)
|
public function postUpdate(EventArgs $eventArgs)
|
||||||
{
|
{
|
||||||
$entity = $eventArgs->getEntity();
|
$entity = $this->getDoctrineObject($eventArgs);
|
||||||
|
|
||||||
if ($entity instanceof $this->objectClass) {
|
if ($entity instanceof $this->objectClass) {
|
||||||
if ($this->isObjectIndexable($entity)) {
|
if ($this->isObjectIndexable($entity)) {
|
||||||
|
@ -229,7 +249,7 @@ class Listener implements EventSubscriber
|
||||||
*/
|
*/
|
||||||
public function preRemove(EventArgs $eventArgs)
|
public function preRemove(EventArgs $eventArgs)
|
||||||
{
|
{
|
||||||
$entity = $eventArgs->getEntity();
|
$entity = $this->getDoctrineObject($eventArgs);
|
||||||
|
|
||||||
if ($entity instanceof $this->objectClass) {
|
if ($entity instanceof $this->objectClass) {
|
||||||
$this->scheduleForDeletion($entity);
|
$this->scheduleForDeletion($entity);
|
||||||
|
|
Loading…
Reference in a new issue