Skip to content

Commit

Permalink
Fix deprecation in Twig 3.12
Browse files Browse the repository at this point in the history
  • Loading branch information
emodric committed Sep 6, 2024
1 parent fbf49e7 commit 6dab9e7
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

use Twig\Attribute\YieldReady;
use Twig\Compiler;
use Twig\Environment;
use Twig\Node\Expression\AbstractExpression;
use Twig\Node\Node;

Expand All @@ -14,7 +15,9 @@ final class DefaultContext extends Node
{
public function __construct(AbstractExpression $expr, int $line = 0, ?string $tag = null)

Check failure on line 16 in bundles/LayoutsBundle/Templating/Twig/Node/DefaultContext.php

View workflow job for this annotation

GitHub Actions / phpstan

Netgen\Bundle\LayoutsBundle\Templating\Twig\Node\DefaultContext::__construct() does not call parent constructor from Twig\Node\Node.
{
parent::__construct(['expr' => $expr], [], $line, $tag);
Environment::MAJOR_VERSION === 3 && Environment::MINOR_VERSION < 12 ?
parent::__construct(['expr' => $expr], [], $line, $tag) :
parent::__construct(['expr' => $expr], [], $line);
}

public function compile(Compiler $compiler): void
Expand Down
4 changes: 3 additions & 1 deletion bundles/LayoutsBundle/Templating/Twig/Node/RenderZone.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@ public function __construct(AbstractExpression $zone, ?AbstractExpression $conte
$nodes['context'] = $context;
}

parent::__construct($nodes, [], $line, $tag);
Environment::MAJOR_VERSION === 3 && Environment::MINOR_VERSION < 12 ?
parent::__construct($nodes, [], $line, $tag) :
parent::__construct($nodes, [], $line);
}

public function compile(Compiler $compiler): void
Expand Down
2 changes: 2 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ parameters:
dynamicConstantNames:
- Symfony\Component\HttpKernel\Kernel::VERSION_ID
- Twig\Environment::VERSION_ID
- Twig\Environment::MAJOR_VERSION
- Twig\Environment::MINOR_VERSION

ignoreErrors:
# Doctrine DBAL
Expand Down
2 changes: 2 additions & 0 deletions phpstan.tests.neon
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ parameters:
message: '#Undefined variable: \$this#'
path: tests/lib/Transfer/Output/Visitor/Integration

- "#Call to function method_exists\\(\\) with .* and 'setNodeTag' will always evaluate to true.#"

-
message: "#Offset 'db' does not exist on array#"
path: tests/lib/Persistence/Doctrine/DatabaseTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
use Twig\Parser;
use Twig\Source;

use function method_exists;

final class DefaultContextTest extends TestCase
{
private Environment $environment;
Expand Down Expand Up @@ -42,10 +44,14 @@ protected function setUp(): void
*
* @dataProvider compileDataProvider
*/
public function testCompile(string $source, DefaultContextNode $node): void
public function testCompile(string $source, DefaultContextNode $node, string $tag): void
{
$stream = $this->environment->tokenize(new Source($source, ''));

if (method_exists($node, 'setNodeTag')) {
$node->setNodeTag($tag);
}

self::assertSame((string) $node, (string) $this->parser->parse($stream)->getNode('body')->getNode('0'));
}

Expand Down Expand Up @@ -75,6 +81,7 @@ public static function compileDataProvider(): iterable
1,
'nglayouts_default_context',
),
'nglayouts_default_context',
],
[
'{% nglayouts_default_context "foo" %}',
Expand All @@ -83,6 +90,7 @@ public static function compileDataProvider(): iterable
1,
'nglayouts_default_context',
),
'nglayouts_default_context',
],
];
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
use Twig\Parser;
use Twig\Source;

use function method_exists;

final class RenderZoneTest extends TestCase
{
private Environment $environment;
Expand Down Expand Up @@ -42,10 +44,14 @@ protected function setUp(): void
*
* @dataProvider compileDataProvider
*/
public function testCompile(string $source, RenderZoneNode $node): void
public function testCompile(string $source, RenderZoneNode $node, string $tag): void
{
$stream = $this->environment->tokenize(new Source($source, ''));

if (method_exists($node, 'setNodeTag')) {
$node->setNodeTag($tag);
}

self::assertSame((string) $node, (string) $this->parser->parse($stream)->getNode('body')->getNode('0'));
}

Expand Down Expand Up @@ -76,6 +82,7 @@ public static function compileDataProvider(): iterable
1,
'nglayouts_render_zone',
),
'nglayouts_render_zone',
],
[
'{% nglayouts_render_zone zone context="json" %}',
Expand All @@ -85,6 +92,7 @@ public static function compileDataProvider(): iterable
1,
'nglayouts_render_zone',
),
'nglayouts_render_zone',
],
];
}
Expand Down

0 comments on commit 6dab9e7

Please sign in to comment.