Вход Регистрация
Файл: 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)
    {
    }
}
Онлайн: 2
Реклама