예제 #1
0
파일: 20-Comments.php 프로젝트: legiov/test
 /**
  *
  * {@inheritdoc}
  */
 public function load(ObjectManager $manager)
 {
     $posts = $manager->getRepository('ModelBundle:Post')->findAll();
     $faker = FakerFactory::create('ru_RU');
     foreach ($posts as $post) {
         $comment = new Comment();
         $comment->setAuthorName($faker->firstName);
         $comment->setBody($faker->paragraph(3));
         $comment->setCommentObject($post);
         $manager->persist($comment);
     }
     $manager->flush();
 }
예제 #2
0
파일: Manager.php 프로젝트: legiov/test
 /**
  * Create comment form and save form
  * @param $object
  * @param Request $request
  * 
  * @return boolean|FormInterface
  */
 public function createComment($object, Request $request, $commentForm)
 {
     $comment = new Comment();
     $comment->setCommentObject($object);
     $form = $this->formFactory->create($commentForm, $comment);
     $form->handleRequest($request);
     if ($form->isValid()) {
         if ($object) {
             $object->addComment($comment);
         }
         $this->em->persist($comment);
         $this->em->flush();
         $this->eventDispatcher->dispatch(CommentEvents::COMMENT_CREATE, new CommentEvent($comment));
         $user = $this->securityContext->getToken()->getUser();
         if ($user instanceof UserInterface) {
             //create ACL
             $objectIdentity = ObjectIdentity::fromDomainObject($comment);
             $acl = $this->aclProvider->createAcl($objectIdentity);
             //securIdentity
             $securityIdentity = UserSecurityIdentity::fromAccount($user);
             $acl->insertObjectAce($securityIdentity, MaskBuilder::MASK_OWNER);
             $this->aclProvider->updateAcl($acl);
         }
         return $comment;
     }
     return $form;
 }
 private function sendNewCommentMessage(Comment $comment)
 {
     $message = Swift_Message::newInstance()->setSubject('New comment created')->setFrom('*****@*****.**')->setTo('*****@*****.**')->setBody('New Comment created for post ' . $comment->getCommentObject()->getId());
     $this->mailer->send($message);
 }