示例#1
0
 public function load(Config $config)
 {
     $services = $config->get('');
     foreach ($services as $alias => $service) {
         $definition = Loader::getDefinitionObject($service);
         $this->container->setDefinition($alias, $definition);
     }
     return $this;
 }
示例#2
0
 public function render($filepath, $vars = array())
 {
     $vars = array_merge($vars, ['mode' => $this->mode, 'locale' => $this->locale], $this->authenticator->getAuthInfo());
     if ('php' === $this->getExtension($filepath)) {
         extract($vars);
         ob_start();
         require $filepath;
         return ob_get_clean();
     }
     if (true === $this->twig) {
         $loader = new \Twig_Loader_Filesystem(dirname($filepath));
         $options = array();
         if ('prod' === $this->mode) {
             $options['cache'] = CACHE . DS . 'twig';
         } else {
             $options['debug'] = true;
         }
         $twig = new \Twig_Environment($loader, $options);
         $twig->addExtension(new Extension\UrlExtension($this->container));
         $twig->addExtension(new Extension\AssetExtension($this->container));
         $twig->addExtension(new Extension\TranslateExtension($this->container->get('translator')));
         $twig->addExtension(new Extension\LangExtension($this->container->get('request')));
         // load the user extensions
         foreach ($this->viewParameters['twig_extensions'] as $alias => $def) {
             $definition = Loader::getDefinitionObject($def);
             $extension = $this->container->instantiate($definition);
             $twig->addExtension($extension);
         }
         if ('dev' == $this->mode) {
             $twig->addExtension(new \Twig_Extension_Debug());
         }
         return $twig->render(basename($filepath), $vars);
     }
     $message = sprintf(self::NOT_FOUND_MESSAGE, $filepath);
     throw new TemplateNotFoundException($message);
 }