Файл: symfony-2.7/src/Symfony/Component/Form/Extension/Templating/TemplatingExtension.php
Строк: 123
<?php
/*
* This file is part of the Symfony package.
*
* (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 SymfonyComponentFormExtensionTemplating;
use SymfonyComponentFormAbstractExtension;
use SymfonyComponentFormExceptionUnexpectedTypeException;
use SymfonyComponentFormExtensionCsrfCsrfProviderCsrfProviderAdapter;
use SymfonyComponentFormExtensionCsrfCsrfProviderCsrfProviderInterface;
use SymfonyComponentFormFormRenderer;
use SymfonyComponentSecurityCsrfCsrfTokenManagerInterface;
use SymfonyComponentTemplatingPhpEngine;
use SymfonyBundleFrameworkBundleTemplatingHelperFormHelper;
/**
* Integrates the Templating component with the Form library.
*
* @author Bernhard Schussek <bschussek@gmail.com>
*/
class TemplatingExtension extends AbstractExtension
{
public function __construct(PhpEngine $engine, $csrfTokenManager = null, array $defaultThemes = array())
{
if ($csrfTokenManager instanceof CsrfProviderInterface) {
$csrfTokenManager = new CsrfProviderAdapter($csrfTokenManager);
} elseif (null !== $csrfTokenManager && !$csrfTokenManager instanceof CsrfTokenManagerInterface) {
throw new UnexpectedTypeException($csrfTokenManager, 'CsrfProviderInterface or CsrfTokenManagerInterface');
}
$engine->addHelpers(array(
new FormHelper(new FormRenderer(new TemplatingRendererEngine($engine, $defaultThemes), $csrfTokenManager)),
));
}
}