mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-16 20:36:33 +00:00
Add return types missed in #4211
This commit is contained in:
committed by
Fabien Potencier
parent
15a58aaffb
commit
21f08dcfe2
+20
-20
@@ -360,7 +360,7 @@ This is used by many of the tests built into Twig::
|
|||||||
|
|
||||||
class OddTestExpression extends TestExpression
|
class OddTestExpression extends TestExpression
|
||||||
{
|
{
|
||||||
public function compile(\Twig\Compiler $compiler)
|
public function compile(\Twig\Compiler $compiler): void
|
||||||
{
|
{
|
||||||
$compiler
|
$compiler
|
||||||
->raw('(')
|
->raw('(')
|
||||||
@@ -473,7 +473,7 @@ Now, let's see the actual code of this class::
|
|||||||
|
|
||||||
class CustomSetTokenParser extends \Twig\TokenParser\AbstractTokenParser
|
class CustomSetTokenParser extends \Twig\TokenParser\AbstractTokenParser
|
||||||
{
|
{
|
||||||
public function parse(\Twig\Token $token)
|
public function parse(\Twig\Token $token): Node
|
||||||
{
|
{
|
||||||
$parser = $this->parser;
|
$parser = $this->parser;
|
||||||
$stream = $parser->getStream();
|
$stream = $parser->getStream();
|
||||||
@@ -486,7 +486,7 @@ Now, let's see the actual code of this class::
|
|||||||
return new CustomSetNode($name, $value, $token->getLine(), $this->getTag());
|
return new CustomSetNode($name, $value, $token->getLine(), $this->getTag());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTag()
|
public function getTag(): string
|
||||||
{
|
{
|
||||||
return 'set';
|
return 'set';
|
||||||
}
|
}
|
||||||
@@ -535,7 +535,7 @@ The ``CustomSetNode`` class itself is quite short::
|
|||||||
parent::__construct(['value' => $value], ['name' => $name], $line, $tag);
|
parent::__construct(['value' => $value], ['name' => $name], $line, $tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function compile(\Twig\Compiler $compiler)
|
public function compile(\Twig\Compiler $compiler): void
|
||||||
{
|
{
|
||||||
$compiler
|
$compiler
|
||||||
->addDebugInfo($this)
|
->addDebugInfo($this)
|
||||||
@@ -597,42 +597,42 @@ An extension is a class that implements the following interface::
|
|||||||
*
|
*
|
||||||
* @return \Twig\TokenParser\TokenParserInterface[]
|
* @return \Twig\TokenParser\TokenParserInterface[]
|
||||||
*/
|
*/
|
||||||
public function getTokenParsers();
|
public function getTokenParsers(): array
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the node visitor instances to add to the existing list.
|
* Returns the node visitor instances to add to the existing list.
|
||||||
*
|
*
|
||||||
* @return \Twig\NodeVisitor\NodeVisitorInterface[]
|
* @return \Twig\NodeVisitor\NodeVisitorInterface[]
|
||||||
*/
|
*/
|
||||||
public function getNodeVisitors();
|
public function getNodeVisitors(): array
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a list of filters to add to the existing list.
|
* Returns a list of filters to add to the existing list.
|
||||||
*
|
*
|
||||||
* @return \Twig\TwigFilter[]
|
* @return \Twig\TwigFilter[]
|
||||||
*/
|
*/
|
||||||
public function getFilters();
|
public function getFilters(): array
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a list of tests to add to the existing list.
|
* Returns a list of tests to add to the existing list.
|
||||||
*
|
*
|
||||||
* @return \Twig\TwigTest[]
|
* @return \Twig\TwigTest[]
|
||||||
*/
|
*/
|
||||||
public function getTests();
|
public function getTests(): array
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a list of functions to add to the existing list.
|
* Returns a list of functions to add to the existing list.
|
||||||
*
|
*
|
||||||
* @return \Twig\TwigFunction[]
|
* @return \Twig\TwigFunction[]
|
||||||
*/
|
*/
|
||||||
public function getFunctions();
|
public function getFunctions(): array
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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
|
||||||
*/
|
*/
|
||||||
public function getOperators();
|
public function getOperators(): array
|
||||||
}
|
}
|
||||||
|
|
||||||
To keep your extension class clean and lean, inherit from the built-in
|
To keep your extension class clean and lean, inherit from the built-in
|
||||||
@@ -684,7 +684,7 @@ method::
|
|||||||
|
|
||||||
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
||||||
{
|
{
|
||||||
public function getFunctions()
|
public function getFunctions(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
new \Twig\TwigFunction('lipsum', 'generate_lipsum'),
|
new \Twig\TwigFunction('lipsum', 'generate_lipsum'),
|
||||||
@@ -703,7 +703,7 @@ environment::
|
|||||||
|
|
||||||
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
||||||
{
|
{
|
||||||
public function getFilters()
|
public function getFilters(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
new \Twig\TwigFilter('rot13', 'str_rot13'),
|
new \Twig\TwigFilter('rot13', 'str_rot13'),
|
||||||
@@ -722,7 +722,7 @@ to the Twig environment::
|
|||||||
|
|
||||||
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
||||||
{
|
{
|
||||||
public function getTokenParsers()
|
public function getTokenParsers(): array
|
||||||
{
|
{
|
||||||
return [new CustomSetTokenParser()];
|
return [new CustomSetTokenParser()];
|
||||||
}
|
}
|
||||||
@@ -742,7 +742,7 @@ the ``!``, ``||``, and ``&&`` operators::
|
|||||||
|
|
||||||
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
||||||
{
|
{
|
||||||
public function getOperators()
|
public function getOperators(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
[
|
[
|
||||||
@@ -765,7 +765,7 @@ The ``getTests()`` method lets you add new test functions::
|
|||||||
|
|
||||||
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
||||||
{
|
{
|
||||||
public function getTests()
|
public function getTests(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
new \Twig\TwigTest('even', 'twig_test_even'),
|
new \Twig\TwigTest('even', 'twig_test_even'),
|
||||||
@@ -801,14 +801,14 @@ The simplest way to use methods is to define them on the extension itself::
|
|||||||
$this->rot13Provider = $rot13Provider;
|
$this->rot13Provider = $rot13Provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getFunctions()
|
public function getFunctions(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
new \Twig\TwigFunction('rot13', [$this, 'rot13']),
|
new \Twig\TwigFunction('rot13', [$this, 'rot13']),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rot13($value)
|
public function rot13($value): string
|
||||||
{
|
{
|
||||||
return $this->rot13Provider->rot13($value);
|
return $this->rot13Provider->rot13($value);
|
||||||
}
|
}
|
||||||
@@ -825,7 +825,7 @@ must be autoload-able)::
|
|||||||
|
|
||||||
class RuntimeLoader implements \Twig\RuntimeLoader\RuntimeLoaderInterface
|
class RuntimeLoader implements \Twig\RuntimeLoader\RuntimeLoaderInterface
|
||||||
{
|
{
|
||||||
public function load($class)
|
public function load($class): void
|
||||||
{
|
{
|
||||||
// implement the logic to create an instance of $class
|
// implement the logic to create an instance of $class
|
||||||
// and inject its dependencies
|
// and inject its dependencies
|
||||||
@@ -857,7 +857,7 @@ It is now possible to move the runtime logic to a new
|
|||||||
$this->rot13Provider = $rot13Provider;
|
$this->rot13Provider = $rot13Provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rot13($value)
|
public function rot13($value): string
|
||||||
{
|
{
|
||||||
return $this->rot13Provider->rot13($value);
|
return $this->rot13Provider->rot13($value);
|
||||||
}
|
}
|
||||||
@@ -865,7 +865,7 @@ It is now possible to move the runtime logic to a new
|
|||||||
|
|
||||||
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
class CustomTwigExtension extends \Twig\Extension\AbstractExtension
|
||||||
{
|
{
|
||||||
public function getFunctions()
|
public function getFunctions(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
new \Twig\TwigFunction('rot13', ['CustomRuntimeExtension', 'rot13']),
|
new \Twig\TwigFunction('rot13', ['CustomRuntimeExtension', 'rot13']),
|
||||||
|
|||||||
+4
-6
@@ -253,11 +253,9 @@ All loaders implement the ``\Twig\Loader\LoaderInterface``::
|
|||||||
*
|
*
|
||||||
* @param string $name The template logical name
|
* @param string $name The template logical name
|
||||||
*
|
*
|
||||||
* @return \Twig\Source
|
|
||||||
*
|
|
||||||
* @throws \Twig\Error\LoaderError When $name is not found
|
* @throws \Twig\Error\LoaderError When $name is not found
|
||||||
*/
|
*/
|
||||||
public function getSourceContext($name);
|
public function getSourceContext($name): \Twig\Source;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the cache key to use for the cache for a given template name.
|
* Gets the cache key to use for the cache for a given template name.
|
||||||
@@ -268,7 +266,7 @@ All loaders implement the ``\Twig\Loader\LoaderInterface``::
|
|||||||
*
|
*
|
||||||
* @throws \Twig\Error\LoaderError When $name is not found
|
* @throws \Twig\Error\LoaderError When $name is not found
|
||||||
*/
|
*/
|
||||||
public function getCacheKey($name);
|
public function getCacheKey($name): string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if the template is still fresh.
|
* Returns true if the template is still fresh.
|
||||||
@@ -280,7 +278,7 @@ All loaders implement the ``\Twig\Loader\LoaderInterface``::
|
|||||||
*
|
*
|
||||||
* @throws \Twig\Error\LoaderError When $name is not found
|
* @throws \Twig\Error\LoaderError When $name is not found
|
||||||
*/
|
*/
|
||||||
public function isFresh($name, $time);
|
public function isFresh($name, $time): bool;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if we have the source code of a template, given its name.
|
* Check if we have the source code of a template, given its name.
|
||||||
@@ -289,7 +287,7 @@ All loaders implement the ``\Twig\Loader\LoaderInterface``::
|
|||||||
*
|
*
|
||||||
* @return bool If the template source code is handled by this loader or not
|
* @return bool If the template source code is handled by this loader or not
|
||||||
*/
|
*/
|
||||||
public function exists($name);
|
public function exists($name): bool;
|
||||||
}
|
}
|
||||||
|
|
||||||
The ``isFresh()`` method must return ``true`` if the current cached template
|
The ``isFresh()`` method must return ``true`` if the current cached template
|
||||||
|
|||||||
+1
-1
@@ -370,7 +370,7 @@ Now, let's define a loader able to use this database::
|
|||||||
return new \Twig\Source($source, $name);
|
return new \Twig\Source($source, $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function exists(string $name)
|
public function exists(string $name): bool
|
||||||
{
|
{
|
||||||
return $name === $this->getValue('name', $name);
|
return $name === $this->getValue('name', $name);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,8 +42,5 @@ interface LoaderInterface
|
|||||||
*/
|
*/
|
||||||
public function isFresh(string $name, int $time): bool;
|
public function isFresh(string $name, int $time): bool;
|
||||||
|
|
||||||
/**
|
public function exists(string $name): bool;
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function exists(string $name);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class ContainerRuntimeLoader implements RuntimeLoaderInterface
|
|||||||
$this->container = $container;
|
$this->container = $container;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function load(string $class)
|
public function load(string $class): ?object
|
||||||
{
|
{
|
||||||
return $this->container->has($class) ? $this->container->get($class) : null;
|
return $this->container->has($class) ? $this->container->get($class) : null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ class FactoryRuntimeLoader implements RuntimeLoaderInterface
|
|||||||
$this->map = $map;
|
$this->map = $map;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function load(string $class)
|
public function load(string $class): ?object
|
||||||
{
|
{
|
||||||
if (!isset($this->map[$class])) {
|
if (!isset($this->map[$class])) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -23,5 +23,5 @@ interface RuntimeLoaderInterface
|
|||||||
*
|
*
|
||||||
* @return object|null The runtime instance or null if the loader does not know how to create the runtime for this class
|
* @return object|null The runtime instance or null if the loader does not know how to create the runtime for this class
|
||||||
*/
|
*/
|
||||||
public function load(string $class);
|
public function load(string $class): ?object;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user