コード例 #1
0
 /**
  * @param LifecycleEventArgs $args
  */
 public function preRemove(LifecycleEventArgs $args)
 {
     if (!$this->enabled) {
         return;
     }
     $entity = $args->getEntity();
     $entityClass = ClassUtils::getClass($entity);
     $event = ProcessTrigger::EVENT_DELETE;
     if (!$this->triggerCache->hasTrigger($entityClass, $event)) {
         return;
     }
     $triggers = $this->getTriggers($entityClass, $event);
     foreach ($triggers as $trigger) {
         // cloned to save all data after flush
         $this->scheduleProcess($trigger, clone $entity);
     }
     $entityId = $this->doctrineHelper->getSingleEntityIdentifier($entity, false);
     if ($entityId) {
         $this->removedEntityHashes[] = ProcessJob::generateEntityHash($entityClass, $entityId);
     }
 }
コード例 #2
0
 /**
  * @expectedException \LogicException
  * @expectedExceptionMessage Process trigger cache provider is not defined
  */
 public function testHasTriggerNoProvider()
 {
     $this->cache->hasTrigger('UnknownEntity', ProcessTrigger::EVENT_DELETE);
 }