feature #21035 [FrameworkBundle] Deprecate the Templating component integration (dunglas, fabpot)
This PR was merged into the 4.3-dev branch. Discussion ---------- [FrameworkBundle] Deprecate the Templating component integration | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | yes | Tests pass? | yes | Fixed tickets | n/a | License | MIT | Doc PR | n/a This PR deprecates the Templating component integration in FrameworkBundle. Only a few people use it because almost everybody use Twig or the serializer to output data. Removing this component will facilitate the maintenance. Commits -------7169f4d3e2
[Templating] added more deprecation224c891e10
[FrameworkBundle] Deprecate the Templating component integration
This commit is contained in:
commit
72fa2b3b2a
@ -17,6 +17,9 @@ use Symfony\Component\Templating\TemplateReference;
|
||||
use Twig\Environment;
|
||||
use Twig\Loader\ArrayLoader;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class TwigEngineTest extends TestCase
|
||||
{
|
||||
public function testExistsWithTemplateInstances()
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bridge\Twig;
|
||||
|
||||
@trigger_error('The '.TwigEngine::class.' class is deprecated since version 4.3 and will be removed in 5.0; use \Twig\Environment instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Templating\EngineInterface;
|
||||
use Symfony\Component\Templating\StreamingEngineInterface;
|
||||
use Symfony\Component\Templating\TemplateNameParserInterface;
|
||||
@ -25,6 +27,8 @@ use Twig\Template;
|
||||
* This engine knows how to render Twig templates.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TwigEngine implements EngineInterface, StreamingEngineInterface
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\CacheWarmer;
|
||||
|
||||
@trigger_error('The '.TemplateFinder::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Symfony\Component\HttpKernel\Bundle\BundleInterface;
|
||||
use Symfony\Component\HttpKernel\KernelInterface;
|
||||
@ -21,6 +23,8 @@ use Symfony\Component\Templating\TemplateReferenceInterface;
|
||||
* Finds all the templates.
|
||||
*
|
||||
* @author Victor Berchet <victor@suumit.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TemplateFinder implements TemplateFinderInterface
|
||||
{
|
||||
|
@ -11,10 +11,14 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\CacheWarmer;
|
||||
|
||||
@trigger_error('The '.TemplateFinderInterface::class.' interface is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
/**
|
||||
* Interface for finding all the templates.
|
||||
*
|
||||
* @author Victor Berchet <victor@suumit.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
interface TemplateFinderInterface
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\CacheWarmer;
|
||||
|
||||
@trigger_error('The '.TemplatePathsCacheWarmer::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\Loader\TemplateLocator;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmer;
|
||||
@ -19,6 +21,8 @@ use Symfony\Component\HttpKernel\CacheWarmer\CacheWarmer;
|
||||
* Computes the association between template names and their paths on the disk.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TemplatePathsCacheWarmer extends CacheWarmer
|
||||
{
|
||||
|
@ -206,6 +206,8 @@ trait ControllerTrait
|
||||
protected function renderView(string $view, array $parameters = []): string
|
||||
{
|
||||
if ($this->container->has('templating')) {
|
||||
@trigger_error('Using the "templating" service is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
return $this->container->get('templating')->render($view, $parameters);
|
||||
}
|
||||
|
||||
@ -224,6 +226,8 @@ trait ControllerTrait
|
||||
protected function render(string $view, array $parameters = [], Response $response = null): Response
|
||||
{
|
||||
if ($this->container->has('templating')) {
|
||||
@trigger_error('Using the "templating" service is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
$content = $this->container->get('templating')->render($view, $parameters);
|
||||
} elseif ($this->container->has('twig')) {
|
||||
$content = $this->container->get('twig')->render($view, $parameters);
|
||||
@ -248,6 +252,8 @@ trait ControllerTrait
|
||||
protected function stream(string $view, array $parameters = [], StreamedResponse $response = null): StreamedResponse
|
||||
{
|
||||
if ($this->container->has('templating')) {
|
||||
@trigger_error('Using the "templating" service is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
$templating = $this->container->get('templating');
|
||||
|
||||
$callback = function () use ($templating, $view, $parameters) {
|
||||
|
@ -18,6 +18,9 @@ use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
use Symfony\Component\DependencyInjection\Reference;
|
||||
use Symfony\Component\Templating\EngineInterface as ComponentEngineInterface;
|
||||
|
||||
/**
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TemplatingPass implements CompilerPassInterface
|
||||
{
|
||||
public function process(ContainerBuilder $container)
|
||||
@ -34,7 +37,12 @@ class TemplatingPass implements CompilerPassInterface
|
||||
if ($container->hasDefinition('templating.engine.php')) {
|
||||
$refs = [];
|
||||
$helpers = [];
|
||||
|
||||
foreach ($container->findTaggedServiceIds('templating.helper', true) as $id => $attributes) {
|
||||
if (!$container->getDefinition($id)->isDeprecated()) {
|
||||
@trigger_error('The "templating.helper" tag is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
if (isset($attributes[0]['alias'])) {
|
||||
$helpers[$attributes[0]['alias']] = $id;
|
||||
$refs[$id] = new Reference($id);
|
||||
|
@ -264,6 +264,8 @@ class FrameworkExtension extends Extension
|
||||
}
|
||||
|
||||
if ($this->isConfigEnabled($container, $config['templating'])) {
|
||||
@trigger_error('Enabling the Templating component is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
if (!class_exists('Symfony\Component\Templating\PhpEngine')) {
|
||||
throw new LogicException('Templating support cannot be enabled as the Templating component is not installed. Try running "composer require symfony/templating".');
|
||||
}
|
||||
|
@ -10,10 +10,14 @@
|
||||
<service id="templating.engine.delegating" class="Symfony\Bundle\FrameworkBundle\Templating\DelegatingEngine">
|
||||
<argument type="service" id="service_container" />
|
||||
<argument type="collection" /> <!-- engines -->
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.name_parser" class="Symfony\Bundle\FrameworkBundle\Templating\TemplateNameParser">
|
||||
<argument type="service" id="kernel" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.filename_parser" class="Symfony\Bundle\FrameworkBundle\Templating\TemplateFilenameParser" />
|
||||
@ -21,30 +25,41 @@
|
||||
<service id="templating.locator" class="Symfony\Bundle\FrameworkBundle\Templating\Loader\TemplateLocator">
|
||||
<argument type="service" id="file_locator" />
|
||||
<argument>%kernel.cache_dir%</argument>
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.finder" class="Symfony\Bundle\FrameworkBundle\CacheWarmer\TemplateFinder">
|
||||
<argument type="service" id="kernel" />
|
||||
<argument type="service" id="templating.filename_parser" />
|
||||
<argument>%kernel.root_dir%/Resources</argument>
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.cache_warmer.template_paths" class="Symfony\Bundle\FrameworkBundle\CacheWarmer\TemplatePathsCacheWarmer">
|
||||
<tag name="kernel.cache_warmer" priority="20" />
|
||||
<argument type="service" id="templating.finder" />
|
||||
<argument type="service" id="templating.locator" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.loader.filesystem" class="Symfony\Bundle\FrameworkBundle\Templating\Loader\FilesystemLoader">
|
||||
<argument type="service" id="templating.locator" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.loader.cache" class="Symfony\Component\Templating\Loader\CacheLoader">
|
||||
<argument type="service" id="templating.loader.wrapped" />
|
||||
<argument>%templating.loader.cache.path%</argument>
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.loader.chain" class="Symfony\Component\Templating\Loader\ChainLoader">
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.loader" alias="templating.loader.filesystem" public="true" />
|
||||
|
@ -14,6 +14,8 @@
|
||||
<argument type="service" id="debug.stopwatch" />
|
||||
<argument type="service" id="templating.globals" />
|
||||
<call method="setCharset"><argument>%kernel.charset%</argument></call>
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
||||
|
@ -13,6 +13,8 @@
|
||||
<argument type="service" id="templating.loader" />
|
||||
<argument type="service" id="templating.globals" />
|
||||
<call method="setCharset"><argument>%kernel.charset%</argument></call>
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.engine.php.helpers_locator">
|
||||
@ -22,31 +24,43 @@
|
||||
|
||||
<service id="templating.helper.slots" class="Symfony\Component\Templating\Helper\SlotsHelper">
|
||||
<tag name="templating.helper" alias="slots" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.helper.request" class="Symfony\Bundle\FrameworkBundle\Templating\Helper\RequestHelper">
|
||||
<tag name="templating.helper" alias="request" />
|
||||
<argument type="service" id="request_stack" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.helper.session" class="Symfony\Bundle\FrameworkBundle\Templating\Helper\SessionHelper">
|
||||
<tag name="templating.helper" alias="session" />
|
||||
<argument type="service" id="request_stack" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.helper.router" class="Symfony\Bundle\FrameworkBundle\Templating\Helper\RouterHelper">
|
||||
<tag name="templating.helper" alias="router" />
|
||||
<argument type="service" id="router" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.helper.assets" class="Symfony\Bundle\FrameworkBundle\Templating\Helper\AssetsHelper">
|
||||
<tag name="templating.helper" alias="assets" />
|
||||
<argument /> <!-- packages -->
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.helper.actions" class="Symfony\Bundle\FrameworkBundle\Templating\Helper\ActionsHelper">
|
||||
<tag name="templating.helper" alias="actions" />
|
||||
<argument type="service" id="fragment.handler" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.helper.code" class="Symfony\Bundle\FrameworkBundle\Templating\Helper\CodeHelper">
|
||||
@ -54,35 +68,49 @@
|
||||
<argument type="service" id="debug.file_link_formatter"></argument>
|
||||
<argument>%kernel.project_dir%</argument>
|
||||
<argument>%kernel.charset%</argument>
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.helper.translator" class="Symfony\Bundle\FrameworkBundle\Templating\Helper\TranslatorHelper">
|
||||
<tag name="templating.helper" alias="translator" />
|
||||
<argument type="service" id="translator" on-invalid="null" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.helper.form" class="Symfony\Bundle\FrameworkBundle\Templating\Helper\FormHelper">
|
||||
<tag name="templating.helper" alias="form" />
|
||||
<argument type="service" id="templating.form.renderer" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.helper.stopwatch" class="Symfony\Bundle\FrameworkBundle\Templating\Helper\StopwatchHelper">
|
||||
<tag name="templating.helper" alias="stopwatch" />
|
||||
<argument type="service" id="debug.stopwatch" on-invalid="ignore" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.form.engine" class="Symfony\Component\Form\Extension\Templating\TemplatingRendererEngine">
|
||||
<argument type="service" id="templating.engine.php" />
|
||||
<argument>%templating.helper.form.resources%</argument>
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.form.renderer" class="Symfony\Component\Form\FormRenderer">
|
||||
<argument type="service" id="templating.form.engine" />
|
||||
<argument type="service" id="security.csrf.token_manager" on-invalid="null" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.globals" class="Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables">
|
||||
<argument type="service" id="service_container" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating;
|
||||
|
||||
@trigger_error('The '.DelegatingEngine::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Templating\DelegatingEngine as BaseDelegatingEngine;
|
||||
@ -19,6 +21,8 @@ use Symfony\Component\Templating\DelegatingEngine as BaseDelegatingEngine;
|
||||
* DelegatingEngine selects an engine for a given template.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class DelegatingEngine extends BaseDelegatingEngine implements EngineInterface
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating;
|
||||
|
||||
@trigger_error('The '.EngineInterface::class.' interface is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Templating\EngineInterface as BaseEngineInterface;
|
||||
|
||||
@ -18,6 +20,8 @@ use Symfony\Component\Templating\EngineInterface as BaseEngineInterface;
|
||||
* EngineInterface is the interface each engine must implement.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
interface EngineInterface extends BaseEngineInterface
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating;
|
||||
|
||||
@trigger_error('The '.GlobalVariables::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
@ -20,6 +22,8 @@ use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
|
||||
* GlobalVariables is the entry point for Symfony global variables in PHP templates.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class GlobalVariables
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating\Helper;
|
||||
|
||||
@trigger_error('The '.ActionsHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\HttpKernel\Controller\ControllerReference;
|
||||
use Symfony\Component\HttpKernel\Fragment\FragmentHandler;
|
||||
use Symfony\Component\Templating\Helper\Helper;
|
||||
@ -19,6 +21,8 @@ use Symfony\Component\Templating\Helper\Helper;
|
||||
* ActionsHelper manages action inclusions.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class ActionsHelper extends Helper
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating\Helper;
|
||||
|
||||
@trigger_error('The '.AssetsHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Asset\Packages;
|
||||
use Symfony\Component\Templating\Helper\Helper;
|
||||
|
||||
@ -18,6 +20,8 @@ use Symfony\Component\Templating\Helper\Helper;
|
||||
* AssetsHelper helps manage asset URLs.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class AssetsHelper extends Helper
|
||||
{
|
||||
|
@ -11,13 +11,17 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating\Helper;
|
||||
|
||||
@trigger_error('The '.CodeHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\HttpKernel\Debug\FileLinkFormatter;
|
||||
use Symfony\Component\Templating\Helper\Helper;
|
||||
|
||||
/**
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @internal since Symfony 4.2, all properties will be private in 5.0
|
||||
* @internal since Symfony 4.2
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class CodeHelper extends Helper
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating\Helper;
|
||||
|
||||
@trigger_error('The '.FormHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Form\FormRendererInterface;
|
||||
use Symfony\Component\Form\FormView;
|
||||
use Symfony\Component\Templating\Helper\Helper;
|
||||
@ -20,6 +22,8 @@ use Symfony\Component\Templating\Helper\Helper;
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
* @author Bernhard Schussek <bschussek@gmail.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class FormHelper extends Helper
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating\Helper;
|
||||
|
||||
@trigger_error('The '.RequestHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Symfony\Component\Templating\Helper\Helper;
|
||||
|
||||
@ -18,6 +20,8 @@ use Symfony\Component\Templating\Helper\Helper;
|
||||
* RequestHelper provides access to the current request parameters.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class RequestHelper extends Helper
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating\Helper;
|
||||
|
||||
@trigger_error('The '.RouterHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Component\Templating\Helper\Helper;
|
||||
|
||||
@ -18,6 +20,8 @@ use Symfony\Component\Templating\Helper\Helper;
|
||||
* RouterHelper manages links between pages in a template context.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class RouterHelper extends Helper
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating\Helper;
|
||||
|
||||
@trigger_error('The '.SessionHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Symfony\Component\Templating\Helper\Helper;
|
||||
|
||||
@ -18,6 +20,8 @@ use Symfony\Component\Templating\Helper\Helper;
|
||||
* SessionHelper provides read-only access to the session attributes.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class SessionHelper extends Helper
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating\Helper;
|
||||
|
||||
@trigger_error('The '.StopwatchHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Stopwatch\Stopwatch;
|
||||
use Symfony\Component\Templating\Helper\Helper;
|
||||
|
||||
@ -18,6 +20,8 @@ use Symfony\Component\Templating\Helper\Helper;
|
||||
* StopwatchHelper provides methods time your PHP templates.
|
||||
*
|
||||
* @author Wouter J <wouter@wouterj.nl>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class StopwatchHelper extends Helper
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating\Helper;
|
||||
|
||||
@trigger_error('The '.TranslatorHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Templating\Helper\Helper;
|
||||
use Symfony\Component\Translation\TranslatorInterface as LegacyTranslatorInterface;
|
||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||
@ -18,6 +20,8 @@ use Symfony\Contracts\Translation\TranslatorTrait;
|
||||
|
||||
/**
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TranslatorHelper extends Helper
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating\Loader;
|
||||
|
||||
@trigger_error('The '.FilesystemLoader::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Config\FileLocatorInterface;
|
||||
use Symfony\Component\Templating\Loader\LoaderInterface;
|
||||
use Symfony\Component\Templating\Storage\FileStorage;
|
||||
@ -20,6 +22,8 @@ use Symfony\Component\Templating\TemplateReferenceInterface;
|
||||
* FilesystemLoader is a loader that read templates from the filesystem.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class FilesystemLoader implements LoaderInterface
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating\Loader;
|
||||
|
||||
@trigger_error('The '.TemplateLocator::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Config\FileLocatorInterface;
|
||||
use Symfony\Component\Templating\TemplateReferenceInterface;
|
||||
|
||||
@ -18,6 +20,8 @@ use Symfony\Component\Templating\TemplateReferenceInterface;
|
||||
* TemplateLocator locates templates in bundles.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TemplateLocator implements FileLocatorInterface
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating;
|
||||
|
||||
@trigger_error('The '.PhpEngine::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Templating\Loader\LoaderInterface;
|
||||
@ -21,6 +23,8 @@ use Symfony\Component\Templating\TemplateNameParserInterface;
|
||||
* This engine knows how to render Symfony templates.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class PhpEngine extends BasePhpEngine implements EngineInterface
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating;
|
||||
|
||||
@trigger_error('The '.TemplateFilenameParser::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Templating\TemplateNameParserInterface;
|
||||
use Symfony\Component\Templating\TemplateReferenceInterface;
|
||||
|
||||
@ -19,6 +21,8 @@ use Symfony\Component\Templating\TemplateReferenceInterface;
|
||||
* TemplateReferenceInterface instances.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TemplateFilenameParser implements TemplateNameParserInterface
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating;
|
||||
|
||||
@trigger_error('The '.TemplateNameParser::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\HttpKernel\KernelInterface;
|
||||
use Symfony\Component\Templating\TemplateNameParser as BaseTemplateNameParser;
|
||||
use Symfony\Component\Templating\TemplateReferenceInterface;
|
||||
@ -21,6 +23,8 @@ use Symfony\Component\Templating\TemplateReferenceInterface;
|
||||
* instances.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TemplateNameParser extends BaseTemplateNameParser
|
||||
{
|
||||
|
@ -11,12 +11,16 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating;
|
||||
|
||||
@trigger_error('The '.TemplateReference::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Templating\TemplateReference as BaseTemplateReference;
|
||||
|
||||
/**
|
||||
* Internal representation of a template.
|
||||
*
|
||||
* @author Victor Berchet <victor@suumit.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TemplateReference extends BaseTemplateReference
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Templating;
|
||||
|
||||
@trigger_error('The '.TimedPhpEngine::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Symfony\Component\Stopwatch\Stopwatch;
|
||||
use Symfony\Component\Templating\Loader\LoaderInterface;
|
||||
@ -20,6 +22,8 @@ use Symfony\Component\Templating\TemplateNameParserInterface;
|
||||
* Times the time spent to render a template.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TimedPhpEngine extends PhpEngine
|
||||
{
|
||||
|
@ -16,6 +16,9 @@ use Symfony\Bundle\FrameworkBundle\Templating\TemplateFilenameParser;
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\Fixtures\BaseBundle\BaseBundle;
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class TemplateFinderTest extends TestCase
|
||||
{
|
||||
public function testFindAllTemplates()
|
||||
|
@ -19,6 +19,9 @@ use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
|
||||
use Symfony\Component\Config\FileLocator;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class TemplatePathsCacheWarmerTest extends TestCase
|
||||
{
|
||||
/** @var Filesystem */
|
||||
|
@ -439,6 +439,9 @@ abstract class ControllerTraitTest extends TestCase
|
||||
$this->assertSame(301, $response->getStatusCode());
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
public function testRenderViewTemplating()
|
||||
{
|
||||
$templating = $this->getMockBuilder('Symfony\Bundle\FrameworkBundle\Templating\EngineInterface')->getMock();
|
||||
@ -453,6 +456,9 @@ abstract class ControllerTraitTest extends TestCase
|
||||
$this->assertEquals('bar', $controller->renderView('foo'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
public function testRenderTemplating()
|
||||
{
|
||||
$templating = $this->getMockBuilder('Symfony\Bundle\FrameworkBundle\Templating\EngineInterface')->getMock();
|
||||
@ -467,6 +473,9 @@ abstract class ControllerTraitTest extends TestCase
|
||||
$this->assertEquals('bar', $controller->render('foo')->getContent());
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
public function testStreamTemplating()
|
||||
{
|
||||
$templating = $this->getMockBuilder('Symfony\Bundle\FrameworkBundle\Templating\EngineInterface')->getMock();
|
||||
|
@ -39,15 +39,6 @@ $container->loadFromExtension('framework', [
|
||||
'gc_probability' => 1,
|
||||
'save_path' => '/path/to/sessions',
|
||||
],
|
||||
'templating' => [
|
||||
'cache' => '/path/to/cache',
|
||||
'engines' => ['php', 'twig'],
|
||||
'loader' => ['loader.foo', 'loader.bar'],
|
||||
'form' => [
|
||||
'resources' => ['theme1', 'theme2'],
|
||||
],
|
||||
'hinclude_default_template' => 'global_hinclude_template',
|
||||
],
|
||||
'assets' => [
|
||||
'version' => 'v1',
|
||||
],
|
||||
|
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
$container->loadFromExtension('framework', array(
|
||||
'templating' => array(
|
||||
'cache' => '/path/to/cache',
|
||||
'engines' => array('php', 'twig'),
|
||||
'loader' => array('loader.foo', 'loader.bar'),
|
||||
'form' => array(
|
||||
'resources' => array('theme1', 'theme2'),
|
||||
),
|
||||
'hinclude_default_template' => 'global_hinclude_template',
|
||||
),
|
||||
'assets' => null,
|
||||
));
|
@ -25,16 +25,6 @@
|
||||
<framework:mime-type>application/pdf</framework:mime-type>
|
||||
</framework:format>
|
||||
</framework:request>
|
||||
<framework:templating cache="/path/to/cache" hinclude-default-template="global_hinclude_template">
|
||||
<framework:loader>loader.foo</framework:loader>
|
||||
<framework:loader>loader.bar</framework:loader>
|
||||
<framework:engine>php</framework:engine>
|
||||
<framework:engine>twig</framework:engine>
|
||||
<framework:form>
|
||||
<framework:resource>theme1</framework:resource>
|
||||
<framework:resource>theme2</framework:resource>
|
||||
</framework:form>
|
||||
</framework:templating>
|
||||
<framework:assets version="v1" />
|
||||
<framework:translator enabled="true" fallback="fr" logging="true">
|
||||
<framework:path>%kernel.project_dir%/Fixtures/translations</framework:path>
|
||||
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" ?>
|
||||
|
||||
<container xmlns="http://symfony.com/schema/dic/services"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:framework="http://symfony.com/schema/dic/symfony"
|
||||
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
|
||||
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
|
||||
|
||||
<framework:config secret="s3cr3t">
|
||||
<framework:assets />
|
||||
<framework:templating cache="/path/to/cache" hinclude-default-template="global_hinclude_template">
|
||||
<framework:loader>loader.foo</framework:loader>
|
||||
<framework:loader>loader.bar</framework:loader>
|
||||
<framework:engine>php</framework:engine>
|
||||
<framework:engine>twig</framework:engine>
|
||||
<framework:form>
|
||||
<framework:resource>theme1</framework:resource>
|
||||
<framework:resource>theme2</framework:resource>
|
||||
</framework:form>
|
||||
</framework:templating>
|
||||
</framework:config>
|
||||
</container>
|
@ -30,13 +30,6 @@ framework:
|
||||
gc_divisor: 108
|
||||
gc_maxlifetime: 90000
|
||||
save_path: /path/to/sessions
|
||||
templating:
|
||||
engines: [php, twig]
|
||||
loader: [loader.foo, loader.bar]
|
||||
cache: /path/to/cache
|
||||
form:
|
||||
resources: [theme1, theme2]
|
||||
hinclude_default_template: global_hinclude_template
|
||||
assets:
|
||||
version: v1
|
||||
translator:
|
||||
|
@ -0,0 +1,9 @@
|
||||
framework:
|
||||
templating:
|
||||
engines: [php, twig]
|
||||
loader: [loader.foo, loader.bar]
|
||||
cache: /path/to/cache
|
||||
form:
|
||||
resources: [theme1, theme2]
|
||||
hinclude_default_template: global_hinclude_template
|
||||
assets: ~
|
@ -533,9 +533,12 @@ abstract class FrameworkExtensionTest extends TestCase
|
||||
$this->assertFalse($container->hasDefinition('request.add_request_formats_listener'), '->registerRequestConfiguration() does not load request.xml when no request formats are defined');
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
public function testTemplating()
|
||||
{
|
||||
$container = $this->createContainerFromFile('full');
|
||||
$container = $this->createContainerFromFile('templating');
|
||||
|
||||
$this->assertTrue($container->hasDefinition('templating.name_parser'), '->registerTemplatingConfiguration() loads templating.xml');
|
||||
|
||||
@ -1197,14 +1200,20 @@ abstract class FrameworkExtensionTest extends TestCase
|
||||
$this->assertEquals($expectedLoaders, $loaders);
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
public function testAssetHelperWhenAssetsAreEnabled()
|
||||
{
|
||||
$container = $this->createContainerFromFile('full');
|
||||
$container = $this->createContainerFromFile('templating');
|
||||
$packages = $container->getDefinition('templating.helper.assets')->getArgument(0);
|
||||
|
||||
$this->assertSame('assets.packages', (string) $packages);
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
public function testAssetHelperWhenTemplatesAreEnabledAndNoAssetsConfiguration()
|
||||
{
|
||||
$container = $this->createContainerFromFile('templating_no_assets');
|
||||
@ -1213,6 +1222,9 @@ abstract class FrameworkExtensionTest extends TestCase
|
||||
$this->assertSame('assets.packages', (string) $packages);
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
public function testAssetsHelperIsRemovedWhenPhpTemplatingEngineIsEnabledAndAssetsAreDisabled()
|
||||
{
|
||||
$container = $this->createContainerFromFile('templating_php_assets_disabled');
|
||||
|
@ -37,9 +37,12 @@ class AutowiringTypesTest extends WebTestCase
|
||||
$this->assertInstanceOf(CachedReader::class, $annotationReader);
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
public function testTemplatingAutowiring()
|
||||
{
|
||||
static::bootKernel();
|
||||
static::bootKernel(array('root_config' => 'templating.yml', 'environment' => 'templating'));
|
||||
|
||||
$autowiredServices = static::$container->get('test.autowiring_types.autowired_services');
|
||||
$this->assertInstanceOf(FrameworkBundleEngineInterface::class, $autowiredServices->getFrameworkBundleEngine());
|
||||
|
@ -13,23 +13,17 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Auto
|
||||
|
||||
use Doctrine\Common\Annotations\Reader;
|
||||
use Psr\Cache\CacheItemPoolInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface as FrameworkBundleEngineInterface;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
|
||||
use Symfony\Component\Templating\EngineInterface;
|
||||
|
||||
class AutowiredServices
|
||||
{
|
||||
private $annotationReader;
|
||||
private $frameworkBundleEngine;
|
||||
private $engine;
|
||||
private $dispatcher;
|
||||
private $cachePool;
|
||||
|
||||
public function __construct(Reader $annotationReader = null, FrameworkBundleEngineInterface $frameworkBundleEngine, EngineInterface $engine, EventDispatcherInterface $dispatcher, CacheItemPoolInterface $cachePool)
|
||||
public function __construct(Reader $annotationReader = null, EventDispatcherInterface $dispatcher, CacheItemPoolInterface $cachePool)
|
||||
{
|
||||
$this->annotationReader = $annotationReader;
|
||||
$this->frameworkBundleEngine = $frameworkBundleEngine;
|
||||
$this->engine = $engine;
|
||||
$this->dispatcher = $dispatcher;
|
||||
$this->cachePool = $cachePool;
|
||||
}
|
||||
@ -39,16 +33,6 @@ class AutowiredServices
|
||||
return $this->annotationReader;
|
||||
}
|
||||
|
||||
public function getFrameworkBundleEngine()
|
||||
{
|
||||
return $this->frameworkBundleEngine;
|
||||
}
|
||||
|
||||
public function getEngine()
|
||||
{
|
||||
return $this->engine;
|
||||
}
|
||||
|
||||
public function getDispatcher()
|
||||
{
|
||||
return $this->dispatcher;
|
||||
|
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\AutowiringTypes;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface as FrameworkBundleEngineInterface;
|
||||
use Symfony\Component\Templating\EngineInterface;
|
||||
|
||||
/**
|
||||
* @author Kévin Dunglas <dunglas@gmail.com>
|
||||
*/
|
||||
class TemplatingServices
|
||||
{
|
||||
private $frameworkBundleEngine;
|
||||
private $engine;
|
||||
|
||||
public function __construct(FrameworkBundleEngineInterface $frameworkBundleEngine, EngineInterface $engine)
|
||||
{
|
||||
$this->frameworkBundleEngine = $frameworkBundleEngine;
|
||||
$this->engine = $engine;
|
||||
}
|
||||
|
||||
public function getFrameworkBundleEngine()
|
||||
{
|
||||
return $this->frameworkBundleEngine;
|
||||
}
|
||||
|
||||
public function getEngine()
|
||||
{
|
||||
return $this->engine;
|
||||
}
|
||||
}
|
@ -15,14 +15,15 @@ use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareTrait;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Twig\Environment;
|
||||
|
||||
class FragmentController implements ContainerAwareInterface
|
||||
{
|
||||
use ContainerAwareTrait;
|
||||
|
||||
public function indexAction(Request $request)
|
||||
public function indexAction(Environment $twig)
|
||||
{
|
||||
return $this->container->get('templating')->renderResponse('fragment.html.php', ['bar' => new Bar()]);
|
||||
return new Response($twig->render('fragment.html.twig', ['bar' => new Bar()]));
|
||||
}
|
||||
|
||||
public function inlinedAction($options, $_format)
|
||||
|
@ -18,14 +18,23 @@ class FragmentTest extends WebTestCase
|
||||
*/
|
||||
public function testFragment($insulate)
|
||||
{
|
||||
$client = $this->createClient(['test_case' => 'Fragment', 'root_config' => 'config.yml']);
|
||||
$client = $this->createClient(['test_case' => 'Fragment', 'root_config' => 'config.yml', 'debug' => true]);
|
||||
if ($insulate) {
|
||||
$client->insulate();
|
||||
}
|
||||
|
||||
$client->request('GET', '/fragment_home');
|
||||
|
||||
$this->assertEquals('bar txt--html--es--fr', $client->getResponse()->getContent());
|
||||
$this->assertEquals(<<<TXT
|
||||
bar txt
|
||||
--
|
||||
html
|
||||
--
|
||||
es
|
||||
--
|
||||
fr
|
||||
TXT
|
||||
, $client->getResponse()->getContent());
|
||||
}
|
||||
|
||||
public function getConfigs()
|
||||
|
@ -6,6 +6,3 @@ services:
|
||||
test.autowiring_types.autowired_services:
|
||||
class: Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\AutowiringTypes\AutowiredServices
|
||||
autowire: true
|
||||
framework:
|
||||
templating:
|
||||
engines: ['php']
|
||||
|
@ -0,0 +1,12 @@
|
||||
imports:
|
||||
- { resource: ../config/default.yml }
|
||||
|
||||
services:
|
||||
_defaults: { public: true }
|
||||
test.autowiring_types.autowired_services:
|
||||
class: Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\AutowiringTypes\TemplatingServices
|
||||
autowire: true
|
||||
|
||||
framework:
|
||||
templating:
|
||||
engines: ['php']
|
@ -9,9 +9,6 @@ framework:
|
||||
router: true
|
||||
session: true
|
||||
request: true
|
||||
templating:
|
||||
enabled: true
|
||||
engines: ['php']
|
||||
assets: true
|
||||
translator: true
|
||||
validation: true
|
||||
|
@ -11,8 +11,10 @@
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\FrameworkBundle;
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\TestBundle;
|
||||
use Symfony\Bundle\TwigBundle\TwigBundle;
|
||||
|
||||
return [
|
||||
new FrameworkBundle(),
|
||||
new TwigBundle(),
|
||||
new TestBundle(),
|
||||
];
|
||||
|
@ -1,7 +1,9 @@
|
||||
imports:
|
||||
- { resource: ../config/default.yml }
|
||||
- { resource: services.yml }
|
||||
|
||||
framework:
|
||||
fragments: ~
|
||||
templating:
|
||||
engines: ['php']
|
||||
|
||||
twig:
|
||||
strict_variables: '%kernel.debug%'
|
||||
|
@ -0,0 +1,6 @@
|
||||
services:
|
||||
_defaults:
|
||||
public: true
|
||||
|
||||
Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller\FragmentController:
|
||||
tags: ['controller.service_arguments']
|
@ -1,14 +0,0 @@
|
||||
<?php echo $this->get('actions')->render($this->get('actions')->controller('Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller\FragmentController::inlinedAction', [
|
||||
'options' => [
|
||||
'bar' => $bar,
|
||||
'eleven' => 11,
|
||||
],
|
||||
]));
|
||||
?>--<?php
|
||||
echo $this->get('actions')->render($this->get('actions')->controller('Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller\FragmentController::customformatAction', ['_format' => 'html']));
|
||||
?>--<?php
|
||||
echo $this->get('actions')->render($this->get('actions')->controller('Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller\FragmentController::customlocaleAction', ['_locale' => 'es']));
|
||||
?>--<?php
|
||||
$app->getRequest()->setLocale('fr');
|
||||
echo $this->get('actions')->render($this->get('actions')->controller('Symfony\Bundle\FrameworkBundle\Tests\Functional\Bundle\TestBundle\Controller\FragmentController::forwardlocaleAction'));
|
||||
?>
|
@ -0,0 +1,7 @@
|
||||
{{ render(controller('TestBundle:Fragment:inlined', {'options': {'bar': bar, 'eleven': 11}})) }}
|
||||
--
|
||||
{{ render(controller('TestBundle:Fragment:customformat', {'_format': 'html'})) }}
|
||||
--
|
||||
{{ render(controller('TestBundle:Fragment:customlocale', {'_locale': 'es'})) }}
|
||||
--
|
||||
{{ app.request.setLocale('fr') }}{{ render(controller('TestBundle:Fragment:forwardlocale')) -}}
|
@ -15,6 +15,9 @@ use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\DelegatingEngine;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class DelegatingEngineTest extends TestCase
|
||||
{
|
||||
public function testSupportsRetrievesEngineFromTheContainer()
|
||||
|
@ -15,6 +15,9 @@ use Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables;
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
|
||||
use Symfony\Component\DependencyInjection\Container;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class GlobalVariablesTest extends TestCase
|
||||
{
|
||||
private $container;
|
||||
|
@ -17,6 +17,9 @@ use Symfony\Component\Asset\Package;
|
||||
use Symfony\Component\Asset\Packages;
|
||||
use Symfony\Component\Asset\VersionStrategy\StaticVersionStrategy;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class AssetsHelperTest extends TestCase
|
||||
{
|
||||
private $helper;
|
||||
|
@ -20,6 +20,9 @@ use Symfony\Component\Form\Tests\AbstractDivLayoutTest;
|
||||
use Symfony\Component\Templating\Loader\FilesystemLoader;
|
||||
use Symfony\Component\Templating\PhpEngine;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class FormHelperDivLayoutTest extends AbstractDivLayoutTest
|
||||
{
|
||||
/**
|
||||
|
@ -20,6 +20,9 @@ use Symfony\Component\Form\Tests\AbstractTableLayoutTest;
|
||||
use Symfony\Component\Templating\Loader\FilesystemLoader;
|
||||
use Symfony\Component\Templating\PhpEngine;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class FormHelperTableLayoutTest extends AbstractTableLayoutTest
|
||||
{
|
||||
/**
|
||||
|
@ -16,6 +16,9 @@ use Symfony\Bundle\FrameworkBundle\Templating\Helper\RequestHelper;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class RequestHelperTest extends TestCase
|
||||
{
|
||||
protected $requestStack;
|
||||
|
@ -18,6 +18,9 @@ use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class SessionHelperTest extends TestCase
|
||||
{
|
||||
protected $requestStack;
|
||||
|
@ -14,6 +14,9 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Templating\Helper;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\Helper\StopwatchHelper;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class StopwatchHelperTest extends TestCase
|
||||
{
|
||||
public function testDevEnvironment()
|
||||
|
@ -15,6 +15,9 @@ use Symfony\Bundle\FrameworkBundle\Templating\Loader\TemplateLocator;
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\TemplateReference;
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class TemplateLocatorTest extends TestCase
|
||||
{
|
||||
public function testLocateATemplate()
|
||||
|
@ -21,6 +21,9 @@ use Symfony\Component\HttpFoundation\Session\Session;
|
||||
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
|
||||
use Symfony\Component\Templating\TemplateNameParser;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class PhpEngineTest extends TestCase
|
||||
{
|
||||
public function testEvaluateAddsAppGlobal()
|
||||
|
@ -15,6 +15,9 @@ use Symfony\Bundle\FrameworkBundle\Templating\TemplateFilenameParser;
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\TemplateReference;
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class TemplateFilenameParserTest extends TestCase
|
||||
{
|
||||
protected $parser;
|
||||
|
@ -16,6 +16,9 @@ use Symfony\Bundle\FrameworkBundle\Templating\TemplateReference;
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
|
||||
use Symfony\Component\Templating\TemplateReference as BaseTemplateReference;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class TemplateNameParserTest extends TestCase
|
||||
{
|
||||
protected $parser;
|
||||
|
@ -14,6 +14,9 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Templating;
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\TemplateReference;
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class TemplateReferenceTest extends TestCase
|
||||
{
|
||||
public function testGetPathWorksWithNamespacedControllers()
|
||||
|
@ -14,6 +14,9 @@ namespace Symfony\Bundle\FrameworkBundle\Tests\Templating;
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\TemplateReference;
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class TemplateTest extends TestCase
|
||||
{
|
||||
/**
|
||||
|
@ -16,6 +16,9 @@ use Symfony\Bundle\FrameworkBundle\Templating\TimedPhpEngine;
|
||||
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;
|
||||
use Symfony\Component\DependencyInjection\Container;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class TimedPhpEngineTest extends TestCase
|
||||
{
|
||||
public function testThatRenderLogsTime()
|
||||
|
@ -52,6 +52,7 @@
|
||||
"symfony/stopwatch": "~3.4|~4.0",
|
||||
"symfony/translation": "~4.2",
|
||||
"symfony/templating": "~3.4|~4.0",
|
||||
"symfony/twig-bundle": "~2.8|~3.2|~4.0",
|
||||
"symfony/validator": "^4.1",
|
||||
"symfony/var-dumper": "~3.4|~4.0",
|
||||
"symfony/workflow": "^4.1",
|
||||
|
@ -32,6 +32,7 @@ use Symfony\Component\Security\Core\Authorization\Voter\VoterInterface;
|
||||
use Symfony\Component\Security\Core\Encoder\Argon2iPasswordEncoder;
|
||||
use Symfony\Component\Security\Core\User\UserProviderInterface;
|
||||
use Symfony\Component\Security\Http\Controller\UserValueResolver;
|
||||
use Symfony\Component\Templating\PhpEngine;
|
||||
|
||||
/**
|
||||
* SecurityExtension.
|
||||
@ -97,7 +98,9 @@ class SecurityExtension extends Extension implements PrependExtensionInterface
|
||||
$loader->load('security.xml');
|
||||
$loader->load('security_listeners.xml');
|
||||
$loader->load('security_rememberme.xml');
|
||||
if (class_exists(PhpEngine::class)) {
|
||||
$loader->load('templating_php.xml');
|
||||
}
|
||||
$loader->load('templating_twig.xml');
|
||||
$loader->load('collectors.xml');
|
||||
$loader->load('guard.xml');
|
||||
|
@ -10,11 +10,15 @@
|
||||
<service id="templating.helper.logout_url" class="Symfony\Bundle\SecurityBundle\Templating\Helper\LogoutUrlHelper">
|
||||
<tag name="templating.helper" alias="logout_url" />
|
||||
<argument type="service" id="security.logout_url_generator" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
|
||||
<service id="templating.helper.security" class="Symfony\Bundle\SecurityBundle\Templating\Helper\SecurityHelper">
|
||||
<tag name="templating.helper" alias="security" />
|
||||
<argument type="service" id="security.authorization_checker" on-invalid="ignore" />
|
||||
|
||||
<deprecated>The "%service_id%" service is deprecated since Symfony 4.3 and will be removed in 5.0.</deprecated>
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\SecurityBundle\Templating\Helper;
|
||||
|
||||
@trigger_error('The '.LogoutUrlHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Security\Http\Logout\LogoutUrlGenerator;
|
||||
use Symfony\Component\Templating\Helper\Helper;
|
||||
|
||||
@ -18,6 +20,8 @@ use Symfony\Component\Templating\Helper\Helper;
|
||||
* LogoutUrlHelper provides generator functions for the logout URL.
|
||||
*
|
||||
* @author Jeremy Mikola <jmikola@gmail.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class LogoutUrlHelper extends Helper
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\SecurityBundle\Templating\Helper;
|
||||
|
||||
@trigger_error('The '.SecurityHelper::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Security\Acl\Voter\FieldVote;
|
||||
use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
|
||||
use Symfony\Component\Templating\Helper\Helper;
|
||||
@ -19,6 +21,8 @@ use Symfony\Component\Templating\Helper\Helper;
|
||||
* SecurityHelper provides read-only access to the security checker.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class SecurityHelper extends Helper
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\TwigBundle\Loader;
|
||||
|
||||
@trigger_error('The '.FilesystemLoader::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig notation for templates instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Config\FileLocatorInterface;
|
||||
use Symfony\Component\Templating\TemplateNameParserInterface;
|
||||
use Symfony\Component\Templating\TemplateReferenceInterface;
|
||||
@ -22,6 +24,8 @@ use Twig\Loader\FilesystemLoader as BaseFilesystemLoader;
|
||||
* to work with the Symfony paths and template references.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig notation for templates instead.
|
||||
*/
|
||||
class FilesystemLoader extends BaseFilesystemLoader
|
||||
{
|
||||
|
@ -280,6 +280,9 @@ class TwigExtensionTest extends TestCase
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
public function testRuntimeLoader()
|
||||
{
|
||||
$container = $this->createContainer();
|
||||
|
@ -18,6 +18,9 @@ use Symfony\Component\Config\Loader\LoaderInterface;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\HttpKernel\Kernel;
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
class CacheWarmingTest extends TestCase
|
||||
{
|
||||
public function testCacheIsProperlyWarmedWhenTemplatingIsAvailable()
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Bundle\TwigBundle;
|
||||
|
||||
@trigger_error('The '.TwigEngine::class.' class is deprecated since version 4.3 and will be removed in 5.0; use \Twig\Environment instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Bridge\Twig\TwigEngine as BaseEngine;
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\EngineInterface;
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\TemplateReference;
|
||||
@ -24,6 +26,8 @@ use Twig\Error\Error;
|
||||
* This engine renders Twig templates.
|
||||
*
|
||||
* @author Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TwigEngine extends BaseEngine implements EngineInterface
|
||||
{
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
namespace Symfony\Component\Form\Extension\Templating;
|
||||
|
||||
@trigger_error('The '.TemplatingExtension::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Templating\Helper\FormHelper;
|
||||
use Symfony\Component\Form\AbstractExtension;
|
||||
use Symfony\Component\Form\FormRenderer;
|
||||
@ -21,6 +23,8 @@ use Symfony\Component\Templating\PhpEngine;
|
||||
* Integrates the Templating component with the Form library.
|
||||
*
|
||||
* @author Bernhard Schussek <bschussek@gmail.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TemplatingExtension extends AbstractExtension
|
||||
{
|
||||
|
@ -11,12 +11,16 @@
|
||||
|
||||
namespace Symfony\Component\Form\Extension\Templating;
|
||||
|
||||
@trigger_error('The '.TemplatingRendererEngine::class.' class is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.', E_USER_DEPRECATED);
|
||||
|
||||
use Symfony\Component\Form\AbstractRendererEngine;
|
||||
use Symfony\Component\Form\FormView;
|
||||
use Symfony\Component\Templating\EngineInterface;
|
||||
|
||||
/**
|
||||
* @author Bernhard Schussek <bschussek@gmail.com>
|
||||
*
|
||||
* @deprecated since version 4.3, to be removed in 5.0; use Twig instead.
|
||||
*/
|
||||
class TemplatingRendererEngine extends AbstractRendererEngine
|
||||
{
|
||||
|
@ -60,30 +60,6 @@ use Symfony\Component\Form\Extension\Core\CoreExtension;
|
||||
* ->addExtension(new ValidatorExtension($validator))
|
||||
* ->getFormFactory();
|
||||
*
|
||||
* Support for the Templating component is provided by TemplatingExtension.
|
||||
* This extension needs a PhpEngine object for rendering forms. As second
|
||||
* argument you should pass the names of the default themes. Here is an
|
||||
* example for using the default layout with "<div>" tags:
|
||||
*
|
||||
* use Symfony\Component\Form\Extension\Templating\TemplatingExtension;
|
||||
*
|
||||
* $formFactory = Forms::createFormFactoryBuilder()
|
||||
* ->addExtension(new TemplatingExtension($engine, null, [
|
||||
* 'FrameworkBundle:Form',
|
||||
* ]))
|
||||
* ->getFormFactory();
|
||||
*
|
||||
* The next example shows how to include the "<table>" layout:
|
||||
*
|
||||
* use Symfony\Component\Form\Extension\Templating\TemplatingExtension;
|
||||
*
|
||||
* $formFactory = Forms::createFormFactoryBuilder()
|
||||
* ->addExtension(new TemplatingExtension($engine, null, [
|
||||
* 'FrameworkBundle:Form',
|
||||
* 'FrameworkBundle:FormTable',
|
||||
* ]))
|
||||
* ->getFormFactory();
|
||||
*
|
||||
* @author Bernhard Schussek <bschussek@gmail.com>
|
||||
*/
|
||||
final class Forms
|
||||
|
@ -48,8 +48,7 @@
|
||||
"suggest": {
|
||||
"symfony/validator": "For form validation.",
|
||||
"symfony/security-csrf": "For protecting forms against CSRF attacks.",
|
||||
"symfony/twig-bridge": "For templating with Twig.",
|
||||
"symfony/framework-bundle": "For templating with PHP."
|
||||
"symfony/twig-bridge": "For templating with Twig."
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Symfony\\Component\\Form\\": "" },
|
||||
|
@ -59,6 +59,10 @@ class HIncludeFragmentRenderer extends RoutableFragmentRenderer
|
||||
throw new \InvalidArgumentException('The hinclude rendering strategy needs an instance of Twig\Environment or Symfony\Component\Templating\EngineInterface');
|
||||
}
|
||||
|
||||
if ($templating instanceof EngineInterface) {
|
||||
@trigger_error(sprintf('Using a "%s" instance for "%s" is deprecated since version 4.3; use a \Twig\Environment instance instead.', EngineInterface::class, __CLASS__), E_USER_DEPRECATED);
|
||||
}
|
||||
|
||||
$this->templating = $templating;
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,8 @@ use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpKernel\Controller\ControllerReference;
|
||||
use Symfony\Component\HttpKernel\Fragment\HIncludeFragmentRenderer;
|
||||
use Symfony\Component\HttpKernel\UriSigner;
|
||||
use Twig\Environment;
|
||||
use Twig\Loader\ArrayLoader;
|
||||
|
||||
class HIncludeFragmentRendererTest extends TestCase
|
||||
{
|
||||
@ -74,7 +76,17 @@ class HIncludeFragmentRendererTest extends TestCase
|
||||
$this->assertEquals('<hx:include src="/foo" p1="v1" p2="v2" id="bar">default</hx:include>', $strategy->render('/foo', Request::create('/'), ['default' => 'default', 'id' => 'bar', 'attributes' => ['p1' => 'v1', 'p2' => 'v2']])->getContent());
|
||||
}
|
||||
|
||||
public function testRenderWithDefaultText()
|
||||
public function testRenderWithTwigAndDefaultText()
|
||||
{
|
||||
$twig = new Environment($loader = new ArrayLoader());
|
||||
$strategy = new HIncludeFragmentRenderer($twig);
|
||||
$this->assertEquals('<hx:include src="/foo">loading...</hx:include>', $strategy->render('/foo', Request::create('/'), ['default' => 'loading...'])->getContent());
|
||||
}
|
||||
|
||||
/**
|
||||
* @group legacy
|
||||
*/
|
||||
public function testRenderWithDefaultTextLegacy()
|
||||
{
|
||||
$engine = $this->getMockBuilder('Symfony\\Component\\Templating\\EngineInterface')->getMock();
|
||||
$engine->expects($this->once())
|
||||
@ -86,17 +98,4 @@ class HIncludeFragmentRendererTest extends TestCase
|
||||
$strategy = new HIncludeFragmentRenderer($engine);
|
||||
$this->assertEquals('<hx:include src="/foo">default</hx:include>', $strategy->render('/foo', Request::create('/'), ['default' => 'default'])->getContent());
|
||||
}
|
||||
|
||||
public function testRenderWithEngineAndDefaultText()
|
||||
{
|
||||
$engine = $this->getMockBuilder('Symfony\\Component\\Templating\\EngineInterface')->getMock();
|
||||
$engine->expects($this->once())
|
||||
->method('exists')
|
||||
->with('loading...')
|
||||
->willThrowException(new \RuntimeException());
|
||||
|
||||
// only default
|
||||
$strategy = new HIncludeFragmentRenderer($engine);
|
||||
$this->assertEquals('<hx:include src="/foo">loading...</hx:include>', $strategy->render('/foo', Request::create('/'), ['default' => 'loading...'])->getContent());
|
||||
}
|
||||
}
|
||||
|
@ -39,7 +39,8 @@
|
||||
"symfony/templating": "~3.4|~4.0",
|
||||
"symfony/translation": "~4.2",
|
||||
"symfony/var-dumper": "^4.1.1",
|
||||
"psr/cache": "~1.0"
|
||||
"psr/cache": "~1.0",
|
||||
"twig/twig": "^1.34|^2.4"
|
||||
},
|
||||
"provide": {
|
||||
"psr/log-implementation": "1.0"
|
||||
|
Reference in New Issue
Block a user