doGenerate() protected méthode

protected doGenerate ( $variables, $defaults, $requirements, $tokens, $parameters, $name, $absolute )
 /**
  * {@override}
  */
 protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $absolute)
 {
     if (is_object($parameters)) {
         $parameters = $this->readObjectParameters($parameters, $variables);
     }
     return parent::doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $absolute);
 }
 /**
  * @throws MissingMandatoryParametersException When route has some missing mandatory parameters
  * @throws InvalidParameterException When a parameter value is not correct
  */
 protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = [])
 {
     $baseUrl = $this->getContext()->getBaseUrl();
     if ($name[0] != '_' && ($locale = $this->getContext()->getParameter('_locale'))) {
         $this->getContext()->setBaseUrl($baseUrl . '/' . $locale);
     }
     $result = parent::doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
     $this->getContext()->setBaseUrl($baseUrl);
     return $result;
 }
 /**
  * {@inheritdoc}
  */
 protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = [])
 {
     $link = $name;
     if ($params = array_intersect_key($parameters, array_flip(isset($defaults['_variables']) ? $defaults['_variables'] : $variables))) {
         $link .= '?' . http_build_query($params);
         if ($properties = $this->getRouteProperties($link)) {
             list($variables, $defaults, $requirements, $tokens, $hostTokens, $requiredSchemes) = $properties;
         }
     }
     if ($referenceType === self::LINK_URL) {
         return $link;
     }
     return parent::doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
 }
 /**
  * @param $variables
  * @param $defaults
  * @param $requirements
  * @param $tokens
  * @param $parameters
  * @param $name
  * @param $referenceType
  * @param $hostTokens
  * @param array $requiredSchemes
  * @return null|string
  */
 protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = [])
 {
     if (is_object($parameters)) {
         $object = $parameters;
         $parameters = [];
     } elseif (isset($parameters['object']) && is_object($parameters['object'])) {
         $object = $parameters['object'];
         unset($parameters['object']);
     }
     if (isset($object)) {
         $mergedParams = array_replace($defaults, $this->context->getParameters(), $parameters);
         $requiredParams = array_diff_key(array_flip($variables), $mergedParams);
         $parameters += $this->getParametersFromObject(array_keys($requiredParams), $object);
     }
     return BaseUrlGenerator::doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
 }
Exemple #5
0
 /**
  * Surcharge de l'url generator pour générer une route en fonction d'un objet (paramètre _object)
  * Les paramètres passés directement à la route sont prioritaires par rapport aux champs de _object
  * {@inheritdoc}
  */
 protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = [])
 {
     if (isset($defaults['_external']) && '' !== $this->context->getBaseUrl()) {
         $oldBaseUrl = $this->context->getBaseUrl();
         $this->context->setBaseUrl('');
     }
     if (isset($parameters['_object'])) {
         $object = $parameters['_object'];
         $parameters = array_merge($this->getParametersFromObject($variables, $object), $parameters);
         unset($parameters['_object']);
     }
     $url = parent::doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
     if (isset($oldBaseUrl)) {
         $this->context->setBaseUrl($oldBaseUrl);
     }
     return $url;
 }
 /**
  * @param       $variables
  * @param       $defaults
  * @param       $requirements
  * @param       $tokens
  * @param       $parameters
  * @param       $name
  * @param       $referenceType
  * @param       $hostTokens
  * @param array $requiredSchemes
  * @return string
  */
 protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = array())
 {
     if (array_key_exists(self::GENERATE_NORMAL_ROUTE, $parameters)) {
         unset($parameters[self::GENERATE_NORMAL_ROUTE]);
         return parent::doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
     }
     //use the cached version with my name - do the standard request if its not work
     // dont generate assets
     if (stripos($name, RouteLoader::ROUTE_BEGIN) !== 0 && stripos($name, '_assetic') !== 0) {
         $routeNames = $this->generateRouteNames($name, $this->context->getParameters(), $defaults, $parameters, $variables, $requirements);
         foreach ($routeNames as $routeName) {
             try {
                 return $this->generate($routeName, $parameters, $referenceType);
             } catch (RouteNotFoundException $e) {
             }
         }
     }
     return parent::doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
 }
 /**
  * @inheritdoc
  */
 protected function doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = array())
 {
     $parameters = $this->removeUnusedAutoParameters($this->automaticParameters, $parameters, $variables);
     return parent::doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, $requiredSchemes);
 }