Add entity listener for user. #330

This commit is contained in:
Korina Cordero 2020-02-26 07:57:02 +00:00
parent 3231aad154
commit a629d9b024
5 changed files with 142 additions and 0 deletions

View file

@ -238,3 +238,11 @@ services:
- name: 'doctrine.orm.entity_listener'
event: 'postPersist'
entity: 'App\Entity\JobOrder'
App\EventListener\EntityListener\UserEntityListener:
tags:
- name: 'doctrine.orm.entity_listener'
event: 'postPersist'
entity: 'App\Entity\User'
- name: 'doctrine.event_listener'
event: 'onFlush'

View file

@ -238,3 +238,10 @@ services:
event: 'postPersist'
entity: 'App\Entity\JobOrder'
App\EventListener\EntityListener\UserEntityListener:
tags:
- name: 'doctrine.orm.entity_listener'
event: 'postPersist'
entity: 'App\Entity\User'
- name: 'doctrine.event_listener'
event: 'onFlush'

View file

@ -258,3 +258,11 @@ services:
- name: 'doctrine.orm.entity_listener'
event: 'postPersist'
entity: 'App\Entity\JobOrder'
App\EventListener\EntityListener\UserEntityListener:
tags:
- name: 'doctrine.orm.entity_listener'
event: 'postPersist'
entity: 'App\Entity\User'
- name: 'doctrine.event_listener'
event: 'onFlush'

View file

@ -0,0 +1,32 @@
<?php
namespace App\EventListener;
use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\OnFlushEventArgs;
abstract class EntityListener
{
public function postPersist($object, LifecycleEventArgs $args)
{
error_log('Entity created');
}
public function onFlush(OnFlushEventArgs $args)
{
error_log('on flush');
}
/*
public function postUpdate($object, LifecycleEventArgs $args)
{
error_log('Entity updated');
}
public function postRemove($object, LifecycleEventArgs $args)
{
error_log('Entity deleted');
} */
}

View file

@ -0,0 +1,87 @@
<?php
namespace App\EventListener\EntityListener;
use Doctrine\Common\Persistence\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\OnFlushEventArgs;
use App\EventListener\EntityListener;
use App\Entity\User;
class UserEntityListener extends EntityListener
{
public function postPersist($user, LifecycleEventArgs $args)
{
error_log('Created user with id ' . $user->getID() . ' and username ' . $user->getUsername());
}
public function onFlush(OnFlushEventArgs $args)
{
$em = $args->getEntityManager();
$unit_of_work = $em->getUnitOfWork();
$deleted_entities = $unit_of_work->getScheduledEntityDeletions();
$updated_entities = $unit_of_work->getScheduledEntityUpdates();
foreach ($updated_entities as $updated_entity)
{
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];
$new_value = $values[1];
error_log('Changed ' . $field . ' from ' . $old_value . ' to ' . $new_value);
}
}
}
foreach ($deleted_entities as $deleted_entity)
{
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);
}
}
}
/*
public function postUpdate($user, LifecycleEventArgs $args)
{
error_log ('POST UPDATE');
error_log('User with id ' . $user->getID() . ' updated.');
error_log('username ' . $user->getUsername());
error_log('password ' . $user->getPassword());
error_log('first name ' . $user->getFirstName());
error_log('last name ' . $user->getLastName());
error_log('contact number '. $user->getContactNumber());
error_log('email ' . $user->getEmail());
$roles = $user->getRoles();
$hubs = $user->getHubs();
foreach ($roles as $role)
error_log('user role ' . $role);
foreach ($hubs as $hub)
error_log('user hub ' . $hub);
} */
/*
public function postRemove($user, LifecycleEventArgs $args)
{
error_log('User deleted.');
} */
}