diff --git a/src/TwigExtension.php b/src/TwigExtension.php index 2d78be7..745fe59 100644 --- a/src/TwigExtension.php +++ b/src/TwigExtension.php @@ -405,7 +405,7 @@ class TwigExtension extends \Twig_Extension { // @code // {{ 'now'|date('Y') }} // @endcode - $filters[] = new \Twig_SimpleFilter('php', [$this, 'phpFilter']); + $filters[] = new \Twig_SimpleFilter('php', [$this, 'phpFilter'], ['needs_context' => TRUE]); } return $filters; } @@ -1286,17 +1286,20 @@ class TwigExtension extends \Twig_Extension { /** * Evaluates a string of PHP code. * + * @param array $context + * Twig context. * @param string $code * Valid PHP code to be evaluated. * * @return mixed * The eval() result. */ - public function phpFilter($code) { + public function phpFilter(array $context, $code) { + // Make Twig variables available in PHP code. + extract($context); ob_start(); - // @codingStandardsIgnoreStart + // phpcs:ignore Drupal.Functions.DiscouragedFunctions.Discouraged print eval($code); - // @codingStandardsIgnoreEnd $output = ob_get_contents(); ob_end_clean(); return $output;