Added generic onFlush function to EntityListener. #330
This commit is contained in:
parent
2998154a55
commit
8b96855395
2 changed files with 83 additions and 20 deletions
|
|
@ -10,12 +10,41 @@ abstract class EntityListener
|
||||||
|
|
||||||
public function postPersist($object, LifecycleEventArgs $args)
|
public function postPersist($object, LifecycleEventArgs $args)
|
||||||
{
|
{
|
||||||
error_log('Entity created');
|
error_log('Created object');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onFlush(OnFlushEventArgs $args)
|
public function onFlush(OnFlushEventArgs $args)
|
||||||
{
|
{
|
||||||
error_log('on flush');
|
$em = $args->getEntityManager();
|
||||||
|
$unit_of_work = $em->getUnitOfWork();
|
||||||
|
$deleted_entities = $unit_of_work->getScheduledEntityDeletions();
|
||||||
|
$updated_entities = $unit_of_work->getScheduledEntityUpdates();
|
||||||
|
$updated_collections = $unit_of_work->getScheduledCollectionUpdates();
|
||||||
|
$deleted_collections = $unit_of_work->getScheduledCollectionDeletions();
|
||||||
|
|
||||||
|
foreach ($updated_entities as $updated_entity)
|
||||||
|
{
|
||||||
|
$changeset = $unit_of_work->getEntityChangeSet($updated_entity);
|
||||||
|
|
||||||
|
$entity_fields = array_keys($changeset);
|
||||||
|
foreach ($entity_fields as $field)
|
||||||
|
{
|
||||||
|
$values = $changeset[$field];
|
||||||
|
|
||||||
|
$old_value = $values[0];
|
||||||
|
$new_value = $values[1];
|
||||||
|
|
||||||
|
error_log('Changed ' . $field . ' from ' . $old_value . ' to ' . $new_value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($deleted_entities as $deleted_entity)
|
||||||
|
{
|
||||||
|
$deleted_id = $deleted_entity->getID();
|
||||||
|
|
||||||
|
error_log('Deleted object with id ' . $deleted_id);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,8 @@ use Doctrine\ORM\Event\OnFlushEventArgs;
|
||||||
use App\EventListener\EntityListener;
|
use App\EventListener\EntityListener;
|
||||||
|
|
||||||
use App\Entity\User;
|
use App\Entity\User;
|
||||||
|
use App\Entity\Role;
|
||||||
|
use App\Entity\Hub;
|
||||||
|
|
||||||
class UserEntityListener extends EntityListener
|
class UserEntityListener extends EntityListener
|
||||||
{
|
{
|
||||||
|
|
@ -16,8 +18,9 @@ class UserEntityListener extends EntityListener
|
||||||
error_log('Created user with id ' . $user->getID() . ' and username ' . $user->getUsername());
|
error_log('Created user with id ' . $user->getID() . ' and username ' . $user->getUsername());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onFlush(OnFlushEventArgs $args)
|
//public function onFlush(OnFlushEventArgs $args)
|
||||||
{
|
//{
|
||||||
|
/*
|
||||||
$em = $args->getEntityManager();
|
$em = $args->getEntityManager();
|
||||||
$unit_of_work = $em->getUnitOfWork();
|
$unit_of_work = $em->getUnitOfWork();
|
||||||
$deleted_entities = $unit_of_work->getScheduledEntityDeletions();
|
$deleted_entities = $unit_of_work->getScheduledEntityDeletions();
|
||||||
|
|
@ -25,20 +28,15 @@ class UserEntityListener extends EntityListener
|
||||||
$updated_collections = $unit_of_work->getScheduledCollectionUpdates();
|
$updated_collections = $unit_of_work->getScheduledCollectionUpdates();
|
||||||
$deleted_collections = $unit_of_work->getScheduledCollectionDeletions();
|
$deleted_collections = $unit_of_work->getScheduledCollectionDeletions();
|
||||||
|
|
||||||
error_log('count of updated_collections ' . count($updated_collections));
|
|
||||||
error_log('count of deleted_collections ' . count($deleted_collections));
|
|
||||||
|
|
||||||
foreach ($updated_entities as $updated_entity)
|
foreach ($updated_entities as $updated_entity)
|
||||||
{
|
{
|
||||||
if ($updated_entity instanceof User)
|
//if ($updated_entity instanceof User)
|
||||||
{
|
//{
|
||||||
$changeset = $unit_of_work->getEntityChangeSet($updated_entity);
|
$changeset = $unit_of_work->getEntityChangeSet($updated_entity);
|
||||||
|
|
||||||
$entity_fields = array_keys($changeset);
|
$entity_fields = array_keys($changeset);
|
||||||
foreach ($entity_fields as $field)
|
foreach ($entity_fields as $field)
|
||||||
{
|
{
|
||||||
error_log('field ' . $field);
|
|
||||||
|
|
||||||
$values = $changeset[$field];
|
$values = $changeset[$field];
|
||||||
|
|
||||||
$old_value = $values[0];
|
$old_value = $values[0];
|
||||||
|
|
@ -46,25 +44,61 @@ class UserEntityListener extends EntityListener
|
||||||
|
|
||||||
error_log('Changed ' . $field . ' from ' . $old_value . ' to ' . $new_value);
|
error_log('Changed ' . $field . ' from ' . $old_value . ' to ' . $new_value);
|
||||||
}
|
}
|
||||||
}
|
//}
|
||||||
else
|
|
||||||
{
|
|
||||||
error_log('hhmmm unsa kaha ni');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($deleted_entities as $deleted_entity)
|
foreach ($deleted_entities as $deleted_entity)
|
||||||
{
|
{
|
||||||
if ($deleted_entity instanceof User)
|
//if ($deleted_entity instanceof User)
|
||||||
{
|
//{
|
||||||
$deleted_id = $deleted_entity->getID();
|
$deleted_id = $deleted_entity->getID();
|
||||||
$deleted_username = $deleted_entity->getUsername();
|
$deleted_username = $deleted_entity->getUsername();
|
||||||
|
|
||||||
error_log('Deleted user with id ' . $deleted_id . ' and username ' . $deleted_username);
|
error_log('Deleted user with id ' . $deleted_id . ' and username ' . $deleted_username);
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: find a way to get the list of "old" items, compare with list of updated items
|
||||||
|
// so we can find out what was added/removed
|
||||||
|
foreach ($updated_collections as $updated_collection)
|
||||||
|
{
|
||||||
|
error_log('in updated_collection snippet');
|
||||||
|
|
||||||
|
foreach ($updated_collection as $item)
|
||||||
|
{
|
||||||
|
if ($item instanceof Role)
|
||||||
|
{
|
||||||
|
error_log('updated_collection item ' . $item->getName());
|
||||||
|
}
|
||||||
|
if ($item instanceof Hub)
|
||||||
|
{
|
||||||
|
error_log('updated_collection item ' . $item->getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach ($deleted_collections as $deleted_collection)
|
||||||
|
{
|
||||||
|
error_log('in deleted_collection snippet');
|
||||||
|
|
||||||
|
foreach ($deleted_collection as $item)
|
||||||
|
{
|
||||||
|
if ($item instanceof Role)
|
||||||
|
{
|
||||||
|
error_log('deleted_collection item ' . $item->getName());
|
||||||
|
}
|
||||||
|
if ($item instanceof Hub)
|
||||||
|
{
|
||||||
|
error_log('deleted_collection item ' . $item->getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} */
|
||||||
|
|
||||||
|
//}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
public function postUpdate($user, LifecycleEventArgs $args)
|
public function postUpdate($user, LifecycleEventArgs $args)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue