Exemplo n.º 1
0
 /**
  * Populates an empty UriContextCollection with UriContexts.
  *
  * @param $uriContextCollection UriContextCollection
  */
 private function getUriContextsForDocument(UriContextCollection $uriContextCollection)
 {
     $locales = $this->adapter->getLocales($uriContextCollection->getSubjectObject()) ?: array(null);
     foreach ($locales as $locale) {
         if (null !== $locale) {
             $subjectObject = $this->adapter->translateObject($uriContextCollection->getSubjectObject(), $locale);
             if (null !== $subjectObject) {
                 $uriContextCollection->setSubjectObject($subjectObject);
             } else {
                 @trigger_error('AdapterInterface::translateObject() has to return the subjectObject as of version 1.1, support for by reference will be removed in 2.0.', E_USER_DEPRECATED);
             }
         }
         // create and add uri context to stack
         $uriContext = $uriContextCollection->createUriContext($locale);
         $uriContextCollection->addUriContext($uriContext);
         // generate the URL
         $uri = $this->uriGenerator->generateUri($uriContext);
         // update the context with the URL
         $uriContext->setUri($uri);
     }
 }