예제 #1
0
 private function createLinkUrl(LinkMetadata $link, $object)
 {
     $language = new ExpressionLanguage();
     $compiledParams = array();
     foreach ($link->getParams() as $key => $expr) {
         $compiledParams[$key] = $language->evaluate($expr, array('object' => $object));
     }
     return $this->router->generate($link->getRoute(), $compiledParams, true);
 }
예제 #2
0
 private function createLinkNode(LinkMetadata $link, XmlSerializationVisitor $visitor, $object)
 {
     $language = new ExpressionLanguage();
     $compiledParams = array();
     foreach ($link->getParams() as $key => $expr) {
         $compiledParams[$key] = $language->evaluate($expr, array('object' => $object));
     }
     $linkNode = $visitor->getDocument()->createElement('link');
     $linkNode->setAttribute('id', $link->getName());
     $linkNode->setAttribute('rel', $link->getEntity());
     $linkNode->setAttribute('href', $this->router->generate($link->getRoute(), $compiledParams, true));
     return $linkNode;
 }
예제 #3
0
 /**
  * @param Link $annotation
  * @return LinkMetadata
  */
 private function createLinkMetadataFromAnnoation(Link $annotation)
 {
     $link = new LinkMetadata();
     $link->setName($annotation->getName());
     $link->setEmbed($annotation->isEmbed());
     $link->setRoute($annotation->getRoute());
     $link->setParams($annotation->getParams());
     $link->setEntity($annotation->getTargetType());
     return $link;
 }