/** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 1.0 */ public function register(Container $container) { $container->set('Joomla\\Renderer\\RendererInterface', function (Container $container) { /* @type \Joomla\Registry\Registry $config */ $config = $container->get('config'); // Instantiate the renderer object $renderer = new TwigRenderer($config->get('template')); // Add our Twig extension $renderer->getRenderer()->addExtension(new TwigExtension($this->app)); // Set the Lexer object $renderer->getRenderer()->setLexer(new \Twig_Lexer($renderer->getRenderer(), ['delimiters' => ['tag_comment' => ['{#', '#}'], 'tag_block' => ['{%', '%}'], 'tag_variable' => ['{{', '}}']]])); return $renderer; }, true, true); // Alias the renderer $container->alias('renderer', 'Joomla\\Renderer\\RendererInterface'); }
/** * {@inheritdoc} */ public function register(Container $container) { $container->alias('renderer', 'Joomla\\Renderer\\RendererInterface')->set('Joomla\\Renderer\\RendererInterface', function (Container $container) { /* @type \Joomla\Registry\Registry $config */ $config = $container->get('config'); // Setup the path $templateConfig = $config->get('template'); $templateConfig->path = JPATH_TEMPLATES; // Instantiate the renderer object $renderer = new TwigRenderer($config->get('template')); // Add our Twig extension $renderer->getRenderer()->addExtension(new StatsExtension($container->get('app'))); // Add the debug extension if enabled if ($config->get('template.debug')) { $renderer->getRenderer()->addExtension(new \Twig_Extension_Debug()); } // Set the Lexer object $renderer->getRenderer()->setLexer(new \Twig_Lexer($renderer->getRenderer(), ['delimiters' => ['tag_comment' => ['{#', '#}'], 'tag_block' => ['{%', '%}'], 'tag_variable' => ['{{', '}}']]])); return $renderer; }, true, true); }
/** * Registers the service provider with a DI container. * * @param Container $container The DI container. * * @return void * * @since 1.0 */ public function register(Container $container) { $container->share('Joomla\\Renderer\\RendererInterface', function (Container $container) { /* @type \Joomla\Registry\Registry $config */ $config = $container->get('config'); // Instantiate the renderer object $rendererConfig = array_merge((array) $config->get('template'), ['path' => JPATH_TEMPLATES]); // If the cache isn't false, then it should be a file path relative to the app root $rendererConfig['cache'] = $rendererConfig['cache'] === false ? $rendererConfig['cache'] : JPATH_ROOT . '/' . $rendererConfig['cache']; // Instantiate the renderer object $renderer = new TwigRenderer($rendererConfig); // Add our Twig extension $renderer->getRenderer()->addExtension(new TwigExtension($this->app)); // Add the debug extension if enabled if ($config->get('template.debug')) { $renderer->getRenderer()->addExtension(new \Twig_Extension_Debug()); } // Set the Lexer object $renderer->getRenderer()->setLexer(new \Twig_Lexer($renderer->getRenderer(), ['delimiters' => ['tag_comment' => ['{#', '#}'], 'tag_block' => ['{%', '%}'], 'tag_variable' => ['{{', '}}']]])); return $renderer; }, true); // Alias the renderer $container->alias('renderer', 'Joomla\\Renderer\\RendererInterface'); }
/** * @testdox The template is rendered * * @covers \Joomla\Renderer\TwigRenderer::render */ public function testTheTemplateIsRendered() { $path = __DIR__ . '/stubs/twig'; $renderer = new TwigRenderer(); $renderer->addFolder($path); $this->assertSame(file_get_contents($path . '/index.twig'), $renderer->render('index.twig')); }