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)
|
||||
{
|
||||
error_log('Entity created');
|
||||
error_log('Created object');
|
||||
}
|
||||
|
||||
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\Entity\User;
|
||||
use App\Entity\Role;
|
||||
use App\Entity\Hub;
|
||||
|
||||
class UserEntityListener extends EntityListener
|
||||
{
|
||||
|
|
@ -16,8 +18,9 @@ class UserEntityListener extends EntityListener
|
|||
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();
|
||||
$unit_of_work = $em->getUnitOfWork();
|
||||
$deleted_entities = $unit_of_work->getScheduledEntityDeletions();
|
||||
|
|
@ -25,20 +28,15 @@ class UserEntityListener extends EntityListener
|
|||
$updated_collections = $unit_of_work->getScheduledCollectionUpdates();
|
||||
$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)
|
||||
{
|
||||
if ($updated_entity instanceof User)
|
||||
{
|
||||
//if ($updated_entity instanceof User)
|
||||
//{
|
||||
$changeset = $unit_of_work->getEntityChangeSet($updated_entity);
|
||||
|
||||
$entity_fields = array_keys($changeset);
|
||||
foreach ($entity_fields as $field)
|
||||
{
|
||||
error_log('field ' . $field);
|
||||
|
||||
$values = $changeset[$field];
|
||||
|
||||
$old_value = $values[0];
|
||||
|
|
@ -46,24 +44,60 @@ class UserEntityListener extends EntityListener
|
|||
|
||||
error_log('Changed ' . $field . ' from ' . $old_value . ' to ' . $new_value);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
error_log('hhmmm unsa kaha ni');
|
||||
}
|
||||
//}
|
||||
}
|
||||
|
||||
foreach ($deleted_entities as $deleted_entity)
|
||||
{
|
||||
if ($deleted_entity instanceof User)
|
||||
{
|
||||
//if ($deleted_entity instanceof User)
|
||||
//{
|
||||
$deleted_id = $deleted_entity->getID();
|
||||
$deleted_username = $deleted_entity->getUsername();
|
||||
|
||||
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)
|
||||
|
|
|
|||
Loading…
Reference in a new issue