Improve phpdoc of ExtensionInterface/Environment/Expressionparser arrays

This commit is contained in:
Vincent Langlet
2022-11-05 11:09:40 +01:00
committed by Fabien Potencier
parent ce55cb842e
commit e98a652a6c
5 changed files with 41 additions and 0 deletions
+9
View File
@@ -25,6 +25,8 @@ use Twig\Extension\OptimizerExtension;
use Twig\Loader\ArrayLoader; use Twig\Loader\ArrayLoader;
use Twig\Loader\ChainLoader; use Twig\Loader\ChainLoader;
use Twig\Loader\LoaderInterface; use Twig\Loader\LoaderInterface;
use Twig\Node\Expression\Binary\AbstractBinary;
use Twig\Node\Expression\Unary\AbstractUnary;
use Twig\Node\ModuleNode; use Twig\Node\ModuleNode;
use Twig\Node\Node; use Twig\Node\Node;
use Twig\NodeVisitor\NodeVisitorInterface; use Twig\NodeVisitor\NodeVisitorInterface;
@@ -53,6 +55,7 @@ class Environment
private $lexer; private $lexer;
private $parser; private $parser;
private $compiler; private $compiler;
/** @var array<string, mixed> */
private $globals = []; private $globals = [];
private $resolvedGlobals; private $resolvedGlobals;
private $loadedTemplates; private $loadedTemplates;
@@ -775,6 +778,8 @@ class Environment
/** /**
* @internal * @internal
*
* @return array<string, mixed>
*/ */
public function getGlobals(): array public function getGlobals(): array
{ {
@@ -804,6 +809,8 @@ class Environment
/** /**
* @internal * @internal
*
* @return array<string, array{precedence: int, class: class-string<AbstractUnary>}>
*/ */
public function getUnaryOperators(): array public function getUnaryOperators(): array
{ {
@@ -812,6 +819,8 @@ class Environment
/** /**
* @internal * @internal
*
* @return array<string, array{precedence: int, class: class-string<AbstractBinary>, associativity: ExpressionParser::OPERATOR_*}>
*/ */
public function getBinaryOperators(): array public function getBinaryOperators(): array
{ {
+4
View File
@@ -17,6 +17,7 @@ use Twig\Node\Expression\AbstractExpression;
use Twig\Node\Expression\ArrayExpression; use Twig\Node\Expression\ArrayExpression;
use Twig\Node\Expression\ArrowFunctionExpression; use Twig\Node\Expression\ArrowFunctionExpression;
use Twig\Node\Expression\AssignNameExpression; use Twig\Node\Expression\AssignNameExpression;
use Twig\Node\Expression\Binary\AbstractBinary;
use Twig\Node\Expression\Binary\ConcatBinary; use Twig\Node\Expression\Binary\ConcatBinary;
use Twig\Node\Expression\BlockReferenceExpression; use Twig\Node\Expression\BlockReferenceExpression;
use Twig\Node\Expression\ConditionalExpression; use Twig\Node\Expression\ConditionalExpression;
@@ -26,6 +27,7 @@ use Twig\Node\Expression\MethodCallExpression;
use Twig\Node\Expression\NameExpression; use Twig\Node\Expression\NameExpression;
use Twig\Node\Expression\ParentExpression; use Twig\Node\Expression\ParentExpression;
use Twig\Node\Expression\TestExpression; use Twig\Node\Expression\TestExpression;
use Twig\Node\Expression\Unary\AbstractUnary;
use Twig\Node\Expression\Unary\NegUnary; use Twig\Node\Expression\Unary\NegUnary;
use Twig\Node\Expression\Unary\NotUnary; use Twig\Node\Expression\Unary\NotUnary;
use Twig\Node\Expression\Unary\PosUnary; use Twig\Node\Expression\Unary\PosUnary;
@@ -48,7 +50,9 @@ class ExpressionParser
private $parser; private $parser;
private $env; private $env;
/** @var array<string, array{precedence: int, class: class-string<AbstractUnary>}> */
private $unaryOperators; private $unaryOperators;
/** @var array<string, array{precedence: int, class: class-string<AbstractBinary>, associativity: self::OPERATOR_*}> */
private $binaryOperators; private $binaryOperators;
public function __construct(Parser $parser, Environment $env) public function __construct(Parser $parser, Environment $env)
+8
View File
@@ -11,6 +11,9 @@
namespace Twig\Extension; namespace Twig\Extension;
use Twig\ExpressionParser;
use Twig\Node\Expression\Binary\AbstractBinary;
use Twig\Node\Expression\Unary\AbstractUnary;
use Twig\NodeVisitor\NodeVisitorInterface; use Twig\NodeVisitor\NodeVisitorInterface;
use Twig\TokenParser\TokenParserInterface; use Twig\TokenParser\TokenParserInterface;
use Twig\TwigFilter; use Twig\TwigFilter;
@@ -63,6 +66,11 @@ interface ExtensionInterface
* Returns a list of operators to add to the existing list. * Returns a list of operators to add to the existing list.
* *
* @return array<array> First array of unary operators, second array of binary operators * @return array<array> First array of unary operators, second array of binary operators
*
* @psalm-return array{
* array<string, array{precedence: int, class: class-string<AbstractUnary>}>,
* array<string, array{precedence: int, class: class-string<AbstractBinary>, associativity: ExpressionParser::OPERATOR_*}>
* }
*/ */
public function getOperators(); public function getOperators();
} }
+3
View File
@@ -21,5 +21,8 @@ namespace Twig\Extension;
*/ */
interface GlobalsInterface interface GlobalsInterface
{ {
/**
* @return array<string, mixed>
*/
public function getGlobals(): array; public function getGlobals(): array;
} }
+17
View File
@@ -15,6 +15,8 @@ use Twig\Error\RuntimeError;
use Twig\Extension\ExtensionInterface; use Twig\Extension\ExtensionInterface;
use Twig\Extension\GlobalsInterface; use Twig\Extension\GlobalsInterface;
use Twig\Extension\StagingExtension; use Twig\Extension\StagingExtension;
use Twig\Node\Expression\Binary\AbstractBinary;
use Twig\Node\Expression\Unary\AbstractUnary;
use Twig\NodeVisitor\NodeVisitorInterface; use Twig\NodeVisitor\NodeVisitorInterface;
use Twig\TokenParser\TokenParserInterface; use Twig\TokenParser\TokenParserInterface;
@@ -31,11 +33,17 @@ final class ExtensionSet
private $staging; private $staging;
private $parsers; private $parsers;
private $visitors; private $visitors;
/** @var array<string, TwigFilter> */
private $filters; private $filters;
/** @var array<string, TwigTest> */
private $tests; private $tests;
/** @var array<string, TwigFunction> */
private $functions; private $functions;
/** @var array<string, array{precedence: int, class: class-string<AbstractUnary>}> */
private $unaryOperators; private $unaryOperators;
/** @var array<string, array{precedence: int, class: class-string<AbstractBinary>, associativity: ExpressionParser::OPERATOR_*}> */
private $binaryOperators; private $binaryOperators;
/** @var array<string, mixed> */
private $globals; private $globals;
private $functionCallbacks = []; private $functionCallbacks = [];
private $filterCallbacks = []; private $filterCallbacks = [];
@@ -305,6 +313,9 @@ final class ExtensionSet
$this->parserCallbacks[] = $callable; $this->parserCallbacks[] = $callable;
} }
/**
* @return array<string, mixed>
*/
public function getGlobals(): array public function getGlobals(): array
{ {
if (null !== $this->globals) { if (null !== $this->globals) {
@@ -379,6 +390,9 @@ final class ExtensionSet
return null; return null;
} }
/**
* @return array<string, array{precedence: int, class: class-string<AbstractUnary>}>
*/
public function getUnaryOperators(): array public function getUnaryOperators(): array
{ {
if (!$this->initialized) { if (!$this->initialized) {
@@ -388,6 +402,9 @@ final class ExtensionSet
return $this->unaryOperators; return $this->unaryOperators;
} }
/**
* @return array<string, array{precedence: int, class: class-string<AbstractBinary>, associativity: ExpressionParser::OPERATOR_*}>
*/
public function getBinaryOperators(): array public function getBinaryOperators(): array
{ {
if (!$this->initialized) { if (!$this->initialized) {