dependencies[] = 'serviceFactory'; } protected function getServiceFactory() { return $this->getInjection('serviceFactory'); } public function afterSave(Entity $entity) { if (!$entity->isFetched()) { $parentType = $entity->get('parentType'); $parentId = $entity->get('parentId'); if ($parentType && $parentId) { $pdo = $this->getEntityManager()->getPDO(); $sql = " SELECT user_id AS userId FROM subscription WHERE entity_id = " . $pdo->quote($parentId) . " AND entity_type = " . $pdo->quote($parentType); $sth = $pdo->prepare($sql); $sth->execute(); $userIdList = array(); while ($row = $sth->fetch(\PDO::FETCH_ASSOC)) { if ($this->getUser()->id != $row['userId']) { $userIdList[] = $row['userId']; } } if (!empty($userIdList)) { $job = $this->getEntityManager()->getEntity('Job'); $job->set(array( 'serviceName' => 'Notification', 'method' => 'notifyAboutNoteFromJob', 'data' => json_encode(array( 'userIdList' => $userIdList, 'noteId' => $entity->id )), 'executeTime' => date('Y-m-d H:i:s'), )); $this->getEntityManager()->saveEntity($job); } } } } protected function getNotificationService() { if (empty($this->notificationService)) { $this->notificationService = $this->getServiceFactory()->create('Notification'); } return $this->notificationService; } }