File: /virtual/nagasaki/public_html/ec/vendor/silex/silex/src/Silex/Provider/TwigServiceProvider.php
<?php
/*
* This file is part of the Silex framework.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Silex\Provider;
use Silex\Application;
use Silex\ServiceProviderInterface;
use Symfony\Bridge\Twig\Extension\RoutingExtension;
use Symfony\Bridge\Twig\Extension\TranslationExtension;
use Symfony\Bridge\Twig\Extension\FormExtension;
use Symfony\Bridge\Twig\Extension\SecurityExtension;
use Symfony\Bridge\Twig\Extension\HttpKernelExtension;
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
use Symfony\Bridge\Twig\Form\TwigRenderer;
/**
* Twig integration for Silex.
*
* @author Fabien Potencier <fabien@symfony.com>
*/
class TwigServiceProvider implements ServiceProviderInterface
{
public function register(Application $app)
{
$app['twig.options'] = array();
$app['twig.form.templates'] = array('form_div_layout.html.twig');
$app['twig.path'] = array();
$app['twig.templates'] = array();
$app['twig'] = $app->share(function ($app) {
$app['twig.options'] = array_replace(
array(
'charset' => $app['charset'],
'debug' => $app['debug'],
'strict_variables' => $app['debug'],
), $app['twig.options']
);
$twig = new \Twig_Environment($app['twig.loader'], $app['twig.options']);
$twig->addGlobal('app', $app);
if ($app['debug']) {
$twig->addExtension(new \Twig_Extension_Debug());
}
if (class_exists('Symfony\Bridge\Twig\Extension\RoutingExtension')) {
if (isset($app['url_generator'])) {
$twig->addExtension(new RoutingExtension($app['url_generator']));
}
if (isset($app['translator'])) {
$twig->addExtension(new TranslationExtension($app['translator']));
}
if (isset($app['security.authorization_checker'])) {
$twig->addExtension(new SecurityExtension($app['security.authorization_checker']));
}
if (isset($app['fragment.handler'])) {
$app['fragment.renderer.hinclude']->setTemplating($twig);
$twig->addExtension(new HttpKernelExtension($app['fragment.handler']));
}
if (isset($app['form.factory'])) {
$app['twig.form.engine'] = $app->share(function ($app) {
return new TwigRendererEngine($app['twig.form.templates']);
});
$app['twig.form.renderer'] = $app->share(function ($app) {
return new TwigRenderer($app['twig.form.engine'], $app['form.csrf_provider']);
});
$twig->addExtension(new FormExtension($app['twig.form.renderer']));
// add loader for Symfony built-in form templates
$reflected = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension');
$path = dirname($reflected->getFileName()).'/../Resources/views/Form';
$app['twig.loader']->addLoader(new \Twig_Loader_Filesystem($path));
}
}
return $twig;
});
$app['twig.loader.filesystem'] = $app->share(function ($app) {
return new \Twig_Loader_Filesystem($app['twig.path']);
});
$app['twig.loader.array'] = $app->share(function ($app) {
return new \Twig_Loader_Array($app['twig.templates']);
});
$app['twig.loader'] = $app->share(function ($app) {
return new \Twig_Loader_Chain(array(
$app['twig.loader.array'],
$app['twig.loader.filesystem'],
));
});
}
public function boot(Application $app)
{
}
}