示例#1
0
文件: Creator.php 项目: t4web/domain
 public function handle($criteria, $data)
 {
     $entity = $this->entityFactory->create($data);
     if ($this->eventManager) {
         $event = $this->eventManager->createEvent('create.pre', $entity, $data);
         $this->eventManager->trigger($event);
     }
     $this->repository->add($entity);
     if ($this->eventManager) {
         $event = $this->eventManager->createEvent('create.post', $entity, $data);
         $this->eventManager->trigger($event);
     }
     return $entity;
 }
示例#2
0
文件: Deleter.php 项目: t4web/domain
 /**
  * @return EntityInterface
  */
 public function handle($filter, $changes)
 {
     /** @var CriteriaInterface $criteria */
     $criteria = $this->repository->createCriteria($filter);
     $entity = $this->repository->find($criteria);
     if (!$entity) {
         throw new EntityNotFoundException("Entity does not found.");
     }
     if ($this->eventManager) {
         $event = $this->eventManager->createEvent('delete.pre', $entity);
         $this->eventManager->trigger($event);
     }
     $this->repository->remove($entity);
     if ($this->eventManager) {
         $event = $this->eventManager->createEvent('delete.post', $entity);
         $this->eventManager->trigger($event);
     }
     return $entity;
 }