/** * Retourne un message pour un template en base * @param string $template_name nom du template * @param string $locale langue * @param array $template_vars tableau de variable * @return SwiftMessage */ public function getMessageForTemplate($template_name, $locale = 'en', $template_vars = array()) { $template = $this->dm->getRepository($this->template_class)->find($template_name); if (is_null($template)) { throw new \Exception(sprintf('Template "%s" not found', $template_name)); } // Refresh template based on locale $template->setTranslatableLocale($locale); $this->dm->refresh($template); // Assign template engine $template->setTwigEngine($this->twig); // Construct and return message return \Swift_Message::newInstance()->setSubject($template->getFinalSubject($template_vars))->setBody($template->getFinalBody($template_vars), 'text/html'); }
/** * @param Doctrine\Common\Persistence\ObjectManager $em * @param Doctrine\Common\Persistence\Mapping\ClassMetadataFactory $factory * @param Knp\FriendlyContexts\Reflection\ObjectReflector $reflector * @param Knp\FriendlyContexts\Utils\TextFormater $formater * @param ReflectionClass $class1 * @param ReflectionClass $class2 * @param ReflectionClass $class3 * @param ReflectionClass $class4 **/ function let($em, $factory, $reflector, $formater, \ReflectionClass $class1, \ReflectionClass $class2, \ReflectionClass $class3, \ReflectionClass $class4) { $class1->getShortName()->willReturn('User'); $class1->getNamespaceName()->willReturn('N1/Namespace'); $class2->getShortName()->willReturn('User'); $class2->getNamespaceName()->willReturn('N2/Namespace'); $class3->getShortName()->willReturn('Users'); $class3->getNamespaceName()->willReturn('N1/Namespace'); $class4->getShortName()->willReturn('Company'); $class4->getNamespaceName()->willReturn('N1/Namespace'); $em->getMetadataFactory()->willReturn($factory); $factory->getAllMetadata()->willReturn([]); $reflector->getReflectionsFromMetadata(Argument::any())->willReturn([$class1, $class2, $class3, $class4]); $this->beConstructedWith($reflector, $formater); }
/** * Save feed * * @param array $values * @return Newscoop\News\Feed */ public function save(array $values) { if (!array_key_exists('type', $values)) { throw new \InvalidArgumentException("Feed type not specified"); } $feed = $this->repository->findBy($values); if (count($feed)) { return $feed[0]; } switch ($values['type']) { case 'reuters': $feed = new ReutersFeed($values['config']); break; default: throw new \InvalidArgumentException("Feed type '{$values['type']}' not implemented"); } $this->om->persist($feed); $this->om->flush(); return $feed; }