mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-04 14:36:52 +00:00
Remove deprecated code
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
# 4.0.0 (2026-XX-XX)
|
||||
|
||||
* Remove `TemplateVariable` and `AssignTemplateVariable`; use `MacroVariable` and `AssignMacroVariable` instead
|
||||
* Add the `isAlwaysAllowedInSandbox()` method to `Twig\TwigCallableInterface` and `Twig\TokenParser\TokenParserInterface`
|
||||
* Always allow printing a `Markup` object in a sandbox, whatever the security policy is
|
||||
* Remove the `Twig\Sandbox\SourcePolicyInterface` interface and the corresponding argument of `Twig\Extension\SandboxExtension::__construct()`
|
||||
|
||||
@@ -20,7 +20,7 @@ use Twig\Node\EmptyNode;
|
||||
use Twig\Node\Expression\AbstractExpression;
|
||||
use Twig\Node\Expression\MacroReferenceExpression;
|
||||
use Twig\Node\Expression\Variable\ContextVariable;
|
||||
use Twig\Node\Expression\Variable\TemplateVariable;
|
||||
use Twig\Node\Expression\Variable\MacroVariable;
|
||||
use Twig\Parser;
|
||||
use Twig\Token;
|
||||
|
||||
@@ -41,7 +41,7 @@ final class FunctionExpressionParser extends AbstractExpressionParser implements
|
||||
$name = $expr->getAttribute('name');
|
||||
|
||||
if (null !== $alias = $parser->getImportedSymbol('function', $name)) {
|
||||
/** @var TemplateVariable $var */
|
||||
/** @var MacroVariable $var */
|
||||
$var = $alias['node']->getNode('var');
|
||||
|
||||
return new MacroReferenceExpression($var, $alias['name'], $this->parseCallableArguments($parser, $line, false), $line);
|
||||
|
||||
@@ -19,7 +19,7 @@ use Twig\Node\Expression\AbstractExpression;
|
||||
use Twig\Node\Expression\ArrayExpression;
|
||||
use Twig\Node\Expression\MacroReferenceExpression;
|
||||
use Twig\Node\Expression\Variable\ContextVariable;
|
||||
use Twig\Node\Expression\Variable\TemplateVariable;
|
||||
use Twig\Node\Expression\Variable\MacroVariable;
|
||||
use Twig\Node\Nodes;
|
||||
use Twig\Parser;
|
||||
use Twig\Token;
|
||||
@@ -44,7 +44,7 @@ class IsExpressionParser extends AbstractExpressionParser implements InfixExpres
|
||||
}
|
||||
|
||||
if ('defined' === $test->getName() && $expr instanceof ContextVariable && null !== $alias = $parser->getImportedSymbol('function', $expr->getAttribute('name'))) {
|
||||
/** @var TemplateVariable $var */
|
||||
/** @var MacroVariable $var */
|
||||
$var = $alias['node']->getNode('var');
|
||||
$expr = new MacroReferenceExpression($var, $alias['name'], new ArrayExpression([], $expr->getTemplateLine()), $expr->getTemplateLine());
|
||||
}
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Twig\Node\Expression\Variable;
|
||||
|
||||
/**
|
||||
* @deprecated since Twig 3.29, use AssignMacroVariable instead
|
||||
*/
|
||||
final class AssignTemplateVariable extends AssignMacroVariable
|
||||
{
|
||||
public function __construct(TemplateVariable $var, bool $global = true)
|
||||
{
|
||||
trigger_deprecation('twig/twig', '3.29', 'The "%s" class is deprecated, use "%s" instead.', self::class, AssignMacroVariable::class);
|
||||
|
||||
parent::__construct($var, $global);
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Twig\Node\Expression\Variable;
|
||||
|
||||
/**
|
||||
* @deprecated since Twig 3.29, use MacroVariable instead
|
||||
*/
|
||||
class TemplateVariable extends MacroVariable
|
||||
{
|
||||
public function __construct(string|int|null $name, int $lineno)
|
||||
{
|
||||
if (self::class === static::class) {
|
||||
trigger_deprecation('twig/twig', '3.29', 'The "%s" class is deprecated, use "%s" instead.', self::class, MacroVariable::class);
|
||||
}
|
||||
|
||||
parent::__construct($name, $lineno);
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,6 @@
|
||||
namespace Twig\Tests\Node\Expression;
|
||||
|
||||
use PHPUnit\Framework\Attributes\DataProvider;
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Twig\Environment;
|
||||
use Twig\Loader\ArrayLoader;
|
||||
@@ -20,7 +19,6 @@ use Twig\Node\Expression\ArrayExpression;
|
||||
use Twig\Node\Expression\MacroReferenceExpression;
|
||||
use Twig\Node\Expression\Variable\ContextVariable;
|
||||
use Twig\Node\Expression\Variable\MacroVariable;
|
||||
use Twig\Node\Expression\Variable\TemplateVariable;
|
||||
|
||||
class MacroReferenceTest extends TestCase
|
||||
{
|
||||
@@ -43,29 +41,6 @@ class MacroReferenceTest extends TestCase
|
||||
yield 'contains NUL byte' => ["foo\x00bar"];
|
||||
}
|
||||
|
||||
#[Group('legacy')]
|
||||
public function testConstructorAcceptsDeprecatedTemplateVariable(): void
|
||||
{
|
||||
$deprecations = [];
|
||||
set_error_handler(static function (int $type, string $message) use (&$deprecations): bool {
|
||||
if (\E_USER_DEPRECATED === $type) {
|
||||
$deprecations[] = $message;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
try {
|
||||
$node = new MacroReferenceExpression(new TemplateVariable('foo', 1), 'macro_foo', new ArrayExpression([], 1), 1);
|
||||
} finally {
|
||||
restore_error_handler();
|
||||
}
|
||||
|
||||
$this->assertInstanceOf(TemplateVariable::class, $node->getNode('template'));
|
||||
$this->assertSame(['Since twig/twig 3.29: The "Twig\\Node\\Expression\\Variable\\TemplateVariable" class is deprecated, use "Twig\\Node\\Expression\\Variable\\MacroVariable" instead.'], $deprecations);
|
||||
}
|
||||
|
||||
public function testConstructorAcceptsAnExpressionAsName(): void
|
||||
{
|
||||
$node = new MacroReferenceExpression(new MacroVariable('foo', 1), new ContextVariable('name', 1), new ArrayExpression([], 1), 1);
|
||||
|
||||
@@ -20,12 +20,9 @@ namespace Twig\Tests\Node;
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use PHPUnit\Framework\Attributes\Group;
|
||||
use Twig\Node\Expression\ConstantExpression;
|
||||
use Twig\Node\Expression\Variable\AssignMacroVariable;
|
||||
use Twig\Node\Expression\Variable\AssignTemplateVariable;
|
||||
use Twig\Node\Expression\Variable\MacroVariable;
|
||||
use Twig\Node\Expression\Variable\TemplateVariable;
|
||||
use Twig\Node\ImportNode;
|
||||
use Twig\Test\NodeTestCase;
|
||||
|
||||
@@ -40,32 +37,6 @@ class ImportTest extends NodeTestCase
|
||||
$this->assertEquals('macro', $node->getNode('var')->getNode('var')->getAttribute('name'));
|
||||
}
|
||||
|
||||
#[Group('legacy')]
|
||||
public function testConstructorAcceptsDeprecatedAssignTemplateVariable(): void
|
||||
{
|
||||
$deprecations = [];
|
||||
set_error_handler(static function (int $type, string $message) use (&$deprecations): bool {
|
||||
if (\E_USER_DEPRECATED === $type) {
|
||||
$deprecations[] = $message;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
try {
|
||||
$node = new ImportNode(new ConstantExpression('foo.twig', 1), new AssignTemplateVariable(new TemplateVariable('macro', 1), true), 1);
|
||||
} finally {
|
||||
restore_error_handler();
|
||||
}
|
||||
|
||||
$this->assertInstanceOf(AssignTemplateVariable::class, $node->getNode('var'));
|
||||
$this->assertSame([
|
||||
'Since twig/twig 3.29: The "Twig\\Node\\Expression\\Variable\\TemplateVariable" class is deprecated, use "Twig\\Node\\Expression\\Variable\\MacroVariable" instead.',
|
||||
'Since twig/twig 3.29: The "Twig\\Node\\Expression\\Variable\\AssignTemplateVariable" class is deprecated, use "Twig\\Node\\Expression\\Variable\\AssignMacroVariable" instead.',
|
||||
], $deprecations);
|
||||
}
|
||||
|
||||
public static function provideTests(): iterable
|
||||
{
|
||||
$tests = [];
|
||||
|
||||
Reference in New Issue
Block a user