Skip to content

Commit

Permalink
minor twigphp#3944 Add type hints to private properties (fabpot)
Browse files Browse the repository at this point in the history
This PR was merged into the 4.x branch.

Discussion
----------

Add type hints to private properties

Commits
-------

35640b6 Add type hints to private properties
  • Loading branch information
fabpot committed Dec 14, 2023
2 parents ffa55e8 + 35640b6 commit e8c511e
Show file tree
Hide file tree
Showing 49 changed files with 343 additions and 187 deletions.
4 changes: 2 additions & 2 deletions src/Cache/FilesystemCache.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ class FilesystemCache implements CacheInterface
{
public const FORCE_BYTECODE_INVALIDATION = 1;

private $directory;
private $options;
private string $directory;
private int $options;

public function __construct(string $directory, int $options = 0)
{
Expand Down
17 changes: 9 additions & 8 deletions src/Compiler.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,19 @@
*/
class Compiler
{
private $lastLine;
private $source;
private $indentation;
private $env;
private $debugInfo = [];
private $sourceOffset;
private $sourceLine;
private $varNameSalt = 0;
private ?int $lastLine;
private string $source;
private int $indentation;
private Environment $env;
private array $debugInfo;
private int $sourceOffset;
private int $sourceLine;
private int $varNameSalt;

public function __construct(Environment $env)
{
$this->env = $env;
$this->reset();
}

public function getEnvironment(): Environment
Expand Down
50 changes: 31 additions & 19 deletions src/Environment.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,25 +47,37 @@ class Environment
public const RELEASE_VERSION = 0;
public const EXTRA_VERSION = 'DEV';

private $charset;
private $loader;
private $debug;
private $autoReload;
private $cache;
private $lexer;
private $parser;
private $compiler;
private string $charset;
private LoaderInterface $loader;
private bool $debug;
private bool $autoReload;
private CacheInterface|string|false $cache;
private ?Lexer $lexer = null;
private ?Parser $parser = null;
private ?Compiler $compiler = null;
/** @var array<string, mixed> */
private $globals = [];
private $resolvedGlobals;
private $loadedTemplates;
private $strictVariables;
private $templateClassPrefix = '__TwigTemplate_';
private $originalCache;
private $extensionSet;
private $runtimeLoaders = [];
private $runtimes = [];
private $optionsHash;
private array $globals = [];
/**
* @var array<string, mixed>|null
*/
private ?array $resolvedGlobals = null;
/**
* @var Template[]
*/
private array $loadedTemplates;
private bool $strictVariables;
private string $templateClassPrefix = '__TwigTemplate_';
private CacheInterface|string|false $originalCache;
private ExtensionSet $extensionSet;
/**
* @var RuntimeLoaderInterface[]
*/
private array $runtimeLoaders = [];
/**
* @var array<string, object>
*/
private array $runtimes = [];
private string $optionsHash;

/**
* Constructor.
Expand Down Expand Up @@ -438,7 +450,7 @@ public function resolveTemplate($names): TemplateWrapper
$count = \count($names);
foreach ($names as $name) {
if ($name instanceof Template) {
return $name;
return new TemplateWrapper($this, $name);
}
if ($name instanceof TemplateWrapper) {
return $name;
Expand Down
10 changes: 5 additions & 5 deletions src/Error/Error.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@
*/
class Error extends \Exception
{
private $lineno;
private $name;
private $rawMessage;
private $sourcePath;
private $sourceCode;
private int $lineno;
private ?string $name;
private string $rawMessage;
private ?string $sourcePath = null;
private ?string $sourceCode = null;

/**
* Constructor.
Expand Down
8 changes: 4 additions & 4 deletions src/ExpressionParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ class ExpressionParser
public const OPERATOR_LEFT = 1;
public const OPERATOR_RIGHT = 2;

private $parser;
private $env;
private Parser $parser;
private Environment $env;
/** @var array<string, array{precedence: int, class: class-string<AbstractUnary>}> */
private $unaryOperators;
private array $unaryOperators;
/** @var array<string, array{precedence: int, class: class-string<AbstractBinary>, associativity: self::OPERATOR_*}> */
private $binaryOperators;
private array $binaryOperators;

public function __construct(Parser $parser, Environment $env)
{
Expand Down
6 changes: 3 additions & 3 deletions src/Extension/CoreExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,9 @@

final class CoreExtension extends AbstractExtension
{
private $dateFormats = ['F j, Y H:i', '%d days'];
private $numberFormat = [0, '.', ','];
private $timezone = null;
private array $dateFormats = ['F j, Y H:i', '%d days'];
private array $numberFormat = [0, '.', ','];
private ?\DateTimeZone $timezone = null;

/**
* Sets the default format to be used by the date filter.
Expand Down
7 changes: 5 additions & 2 deletions src/Extension/EscaperExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@
final class EscaperExtension extends AbstractExtension
{
private $defaultStrategy;
private $escapers = [];
/**
* @var array<string, callable(Environment, string, string): string>
*/
private array $escapers = [];

/** @internal */
public $safeClasses = [];
Expand Down Expand Up @@ -110,7 +113,7 @@ public function setEscaper($strategy, callable $callable)
/**
* Gets all defined escapers.
*
* @return callable[] An array of escapers
* @return array<string, callable> An array of escapers
*/
public function getEscapers()
{
Expand Down
2 changes: 1 addition & 1 deletion src/Extension/OptimizerExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

final class OptimizerExtension extends AbstractExtension
{
private $optimizers;
private int $optimizers;

public function __construct(int $optimizers = -1)
{
Expand Down
5 changes: 4 additions & 1 deletion src/Extension/ProfilerExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@

class ProfilerExtension extends AbstractExtension
{
private $actives = [];
/**
* @var Profile[]
*/
private array $actives = [];

public function __construct(Profile $profile)
{
Expand Down
6 changes: 3 additions & 3 deletions src/Extension/SandboxExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@

final class SandboxExtension extends AbstractExtension
{
private $sandboxedGlobally;
private $sandboxed;
private $policy;
private bool $sandboxedGlobally;
private bool $sandboxed = false;
private SecurityPolicyInterface $policy;

public function __construct(SecurityPolicyInterface $policy, $sandboxed = false)
{
Expand Down
25 changes: 20 additions & 5 deletions src/Extension/StagingExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,26 @@
*/
final class StagingExtension extends AbstractExtension
{
private $functions = [];
private $filters = [];
private $visitors = [];
private $tokenParsers = [];
private $tests = [];
/**
* @var array<string, TwigFunction>
*/
private array $functions = [];
/**
* @var array<string, TwigFilter>
*/
private array $filters = [];
/**
* @var list<NodeVisitorInterface>
*/
private array $visitors = [];
/**
* @var array<string, TokenParserInterface>
*/
private array $tokenParsers = [];
/**
* @var array<string, TwigTest>
*/
private array $tests = [];

public function addFunction(TwigFunction $function): void
{
Expand Down
63 changes: 42 additions & 21 deletions src/ExtensionSet.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,49 @@
*/
final class ExtensionSet
{
private $extensions;
private $initialized = false;
private $runtimeInitialized = false;
/**
* @var ExtensionInterface[]
*/
private array $extensions;
private bool $initialized = false;
private bool $runtimeInitialized = false;
private $staging;
private $parsers;
private $visitors;
/** @var array<string, TwigFilter> */
private $filters;
/** @var array<string, TwigTest> */
private $tests;
/** @var array<string, TwigFunction> */
private $functions;
/** @var array<string, array{precedence: int, class: class-string<AbstractUnary>}> */
private $unaryOperators;
/** @var array<string, array{precedence: int, class: class-string<AbstractBinary>, associativity: ExpressionParser::OPERATOR_*}> */
private $binaryOperators;
/** @var array<string, mixed> */
private $globals;
private $functionCallbacks = [];
private $filterCallbacks = [];
private $parserCallbacks = [];
private $lastModified = 0;
/**
* @var TokenParserInterface[]
*/
private array $parsers;
/**
* @var NodeVisitorInterface[]
*/
private array $visitors;
/**
* @var array<string, TwigFilter>
*/
private array $filters;
/**
* @var array<string, TwigTest>
*/
private array $tests;
/**
* @var array<string, TwigFunction>
*/
private array $functions;
/**
* @var array<string, array{precedence: int, class: class-string<AbstractUnary>}>
*/
private array $unaryOperators;
/**
* @var array<string, array{precedence: int, class: class-string<AbstractBinary>, associativity: ExpressionParser::OPERATOR_*}>
*/
private array $binaryOperators;
/**
* @var array<string, mixed>|null
*/
private ?array $globals = null;
private array $functionCallbacks = [];
private array $filterCallbacks = [];
private array $parserCallbacks = [];
private int $lastModified = 0;

public function __construct()
{
Expand Down
49 changes: 32 additions & 17 deletions src/Lexer.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,38 @@
*/
class Lexer
{
private $isInitialized = false;

private $tokens;
private $code;
private $cursor;
private $lineno;
private $end;
private $state;
private $states;
private $brackets;
private $env;
private $source;
private $options;
private $regexes;
private $position;
private $positions;
private $currentVarBlockLine;
private bool $isInitialized = false;

/**
* @var list<Token>
*/
private array $tokens;
private string $code;
private int $cursor;
private int $lineno;
private int $end;
private int $state;
/**
* @var int[]
*/
private array $states;
/**
* @var array<int, array{0: string, 1: int}>
*/
private array $brackets;
private Environment $env;
private Source $source;
/**
* @var array<string, string>
*/
private array $options;
/**
* @var array<string, string>
*/
private array $regexes;
private int $position;
private array $positions;
private int $currentVarBlockLine;

public const STATE_DATA = 0;
public const STATE_BLOCK = 1;
Expand Down
7 changes: 5 additions & 2 deletions src/Loader/ArrayLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,13 @@
*/
final class ArrayLoader implements LoaderInterface
{
private $templates = [];
/**
* @var array<string, string>
*/
private array $templates = [];

/**
* @param array $templates An array of templates (keys are the names, and values are the source code)
* @param array<string, string> $templates An array of templates (keys are the names, and values are the source code)
*/
public function __construct(array $templates = [])
{
Expand Down
11 changes: 9 additions & 2 deletions src/Loader/ChainLoader.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,15 @@
*/
final class ChainLoader implements LoaderInterface
{
private $hasSourceCache = [];
private $loaders = [];
/**
* @var array<string, bool>
*/
private array $hasSourceCache = [];

/**
* @var LoaderInterface[]
*/
private array $loaders = [];

/**
* @param LoaderInterface[] $loaders
Expand Down

0 comments on commit e8c511e

Please sign in to comment.