Пример #1
0
 /**
  * Gets the UrlGenerator instance associated with this Router.
  *
  * @return UrlGeneratorInterface A UrlGeneratorInterface instance
  */
 public function getGenerator()
 {
     if (null !== $this->generator) {
         return $this->generator;
     }
     if (null === $this->options['cache_dir'] || null === $this->options['generator_cache_class']) {
         $this->generator = new $this->options['generator_class']($this->getRouteCollection(), $this->context, $this->logger);
     } else {
         $class = $this->options['generator_cache_class'];
         $baseClass = $this->options['generator_base_class'];
         $that = $this;
         // required for PHP 5.3 where "$this" cannot be use()d in anonymous functions. Change in Symfony 3.0.
         $cache = $this->getConfigCacheFactory()->cache($this->options['cache_dir'] . '/' . $class . '.php', function (ConfigCacheInterface $cache) use($that, $class, $baseClass) {
             $dumper = $that->getGeneratorDumperInstance();
             $options = array('class' => $class, 'base_class' => $baseClass);
             $cache->write($dumper->dump($options), $that->getRouteCollection()->getResources());
         });
         require_once $cache->getPath();
         $this->generator = new $class($this->context, $this->logger);
     }
     if ($this->generator instanceof ConfigurableRequirementsInterface) {
         $this->generator->setStrictRequirements($this->options['strict_requirements']);
     }
     return $this->generator;
 }
Пример #2
0
 /**
  * Gets the UrlGenerator instance associated with this Router.
  *
  * @return UrlGeneratorInterface A UrlGeneratorInterface instance
  */
 public function getGenerator()
 {
     if (null !== $this->generator) {
         return $this->generator;
     }
     if (null === $this->options['cache_dir'] || null === $this->options['generator_cache_class']) {
         $this->generator = new $this->options['generator_class']($this->getRouteCollection(), $this->context, $this->logger);
     } else {
         $cache = $this->getConfigCacheFactory()->cache($this->options['cache_dir'] . '/' . $this->options['generator_cache_class'] . '.php', function (ConfigCacheInterface $cache) {
             $dumper = $this->getGeneratorDumperInstance();
             $options = array('class' => $this->options['generator_cache_class'], 'base_class' => $this->options['generator_base_class']);
             $cache->write($dumper->dump($options), $this->getRouteCollection()->getResources());
         });
         require_once $cache->getPath();
         $this->generator = new $this->options['generator_cache_class']($this->context, $this->logger);
     }
     if ($this->generator instanceof ConfigurableRequirementsInterface) {
         $this->generator->setStrictRequirements($this->options['strict_requirements']);
     }
     return $this->generator;
 }
Пример #3
0
 /**
  * Gets the UrlGenerator instance associated with this Router.
  *
  * @return UrlGeneratorInterface A UrlGeneratorInterface instance
  */
 public function getGenerator()
 {
     if (null !== $this->generator) {
         return $this->generator;
     }
     if (null === $this->options['cache_dir'] || null === $this->options['generator_cache_class']) {
         $this->generator = new $this->options['generator_class']($this->getRouteCollection(), $this->context, $this->logger);
     } else {
         $class = $this->options['generator_cache_class'];
         $cache = new ConfigCache($this->options['cache_dir'] . '/' . $class . '.php', $this->options['debug']);
         if (!$cache->isFresh($class)) {
             $dumper = new $this->options['generator_dumper_class']($this->getRouteCollection());
             $options = array('class' => $class, 'base_class' => $this->options['generator_base_class']);
             $cache->write($dumper->dump($options), $this->getRouteCollection()->getResources());
         }
         require_once $cache;
         $this->generator = new $class($this->context, $this->logger);
     }
     if ($this->generator instanceof ConfigurableRequirementsInterface) {
         $this->generator->setStrictRequirements($this->options['strict_requirements']);
     }
     return $this->generator;
 }
 /**
  * {@inheritdoc}
  */
 public function setStrictRequirements($enabled)
 {
     if ($this->wrapped instanceof ConfigurableRequirementsInterface) {
         $this->wrapped->setStrictRequirements($enabled);
     }
 }