Файл: onlinepoisk.wm-scripts.ru/vendor/silex/silex/silex/src/Silex/Provider/TwigServiceProvider.php
Строк: 151
<?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 SilexProvider;
use SilexApplication;
use SilexServiceProviderInterface;
use SymfonyBridgeTwigExtensionRoutingExtension;
use SymfonyBridgeTwigExtensionTranslationExtension;
use SymfonyBridgeTwigExtensionFormExtension;
use SymfonyBridgeTwigExtensionSecurityExtension;
use SymfonyBridgeTwigFormTwigRendererEngine;
use SymfonyBridgeTwigFormTwigRenderer;
/**
* 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);
$twig->addExtension(new TwigCoreExtension());
if ($app['debug']) {
$twig->addExtension(new Twig_Extension_Debug());
}
if (class_exists('SymfonyBridgeTwigExtensionRoutingExtension')) {
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'])) {
$twig->addExtension(new SecurityExtension($app['security']));
}
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('SymfonyBridgeTwigExtensionFormExtension');
$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)
{
}
}