diff --git a/composer.json b/composer.json index 31bac1d819316..9e653461bf5fc 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "ext-xml": "*", "doctrine/event-manager": "~1.0", "doctrine/persistence": "~1.0", - "twig/twig": "^2.10", + "twig/twig": "^2.10|^3", "psr/cache": "~1.0", "psr/container": "^1.0", "psr/link": "^1.0", diff --git a/src/Symfony/Bridge/Twig/Extension/AssetExtension.php b/src/Symfony/Bridge/Twig/Extension/AssetExtension.php index 70ff291e8a22e..694821f7bf6b8 100644 --- a/src/Symfony/Bridge/Twig/Extension/AssetExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/AssetExtension.php @@ -19,10 +19,8 @@ * Twig extension for the Symfony Asset component. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class AssetExtension extends AbstractExtension +final class AssetExtension extends AbstractExtension { private $packages; @@ -33,10 +31,8 @@ public function __construct(Packages $packages) /** * {@inheritdoc} - * - * @return TwigFunction[] */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('asset', [$this, 'getAssetUrl']), @@ -49,31 +45,17 @@ public function getFunctions() * * If the package used to generate the path is an instance of * UrlPackage, you will always get a URL and not a path. - * - * @return string The public path of the asset */ - public function getAssetUrl(string $path, string $packageName = null) + public function getAssetUrl(string $path, string $packageName = null): string { return $this->packages->getUrl($path, $packageName); } /** * Returns the version of an asset. - * - * @return string The asset version */ - public function getAssetVersion(string $path, string $packageName = null) + public function getAssetVersion(string $path, string $packageName = null): string { return $this->packages->getVersion($path, $packageName); } - - /** - * Returns the name of the extension. - * - * @return string The extension name - */ - public function getName() - { - return 'asset'; - } } diff --git a/src/Symfony/Bridge/Twig/Extension/CodeExtension.php b/src/Symfony/Bridge/Twig/Extension/CodeExtension.php index b43ddcd351e5d..f35725af0da9e 100644 --- a/src/Symfony/Bridge/Twig/Extension/CodeExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/CodeExtension.php @@ -19,10 +19,8 @@ * Twig extension relate to PHP code and used by the profiler and the default exception templates. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class CodeExtension extends AbstractExtension +final class CodeExtension extends AbstractExtension { private $fileLinkFormat; private $charset; @@ -30,8 +28,6 @@ class CodeExtension extends AbstractExtension /** * @param string|FileLinkFormatter $fileLinkFormat The format for links to source files - * @param string $projectDir The project directory - * @param string $charset The charset */ public function __construct($fileLinkFormat, string $projectDir, string $charset) { @@ -42,10 +38,8 @@ public function __construct($fileLinkFormat, string $projectDir, string $charset /** * {@inheritdoc} - * - * @return TwigFilter[] */ - public function getFilters() + public function getFilters(): array { return [ new TwigFilter('abbr_class', [$this, 'abbrClass'], ['is_safe' => ['html']]), @@ -61,7 +55,7 @@ public function getFilters() ]; } - public function abbrClass(string $class) + public function abbrClass(string $class): string { $parts = explode('\\', $class); $short = array_pop($parts); @@ -69,7 +63,7 @@ public function abbrClass(string $class) return sprintf('%s', $class, $short); } - public function abbrMethod(string $method) + public function abbrMethod(string $method): string { if (false !== strpos($method, '::')) { list($class, $method) = explode('::', $method, 2); @@ -85,10 +79,8 @@ public function abbrMethod(string $method) /** * Formats an array as a string. - * - * @return string */ - public function formatArgs(array $args) + public function formatArgs(array $args): string { $result = []; foreach ($args as $key => $item) { @@ -116,20 +108,16 @@ public function formatArgs(array $args) /** * Formats an array as a string. - * - * @return string */ - public function formatArgsAsText(array $args) + public function formatArgsAsText(array $args): string { return strip_tags($this->formatArgs($args)); } /** * Returns an excerpt of a code file around the given line number. - * - * @return string An HTML string */ - public function fileExcerpt(string $file, int $line, int $srcContext = 3) + public function fileExcerpt(string $file, int $line, int $srcContext = 3): ?string { if (is_file($file) && is_readable($file)) { // highlight_file could throw warnings @@ -160,10 +148,8 @@ public function fileExcerpt(string $file, int $line, int $srcContext = 3) /** * Formats a file path. - * - * @return string */ - public function formatFile(string $file, int $line, string $text = null) + public function formatFile(string $file, int $line, string $text = null): string { $file = trim($file); @@ -211,7 +197,7 @@ public function getFileRelative(string $file): ?string return null; } - public function formatFileFromText(string $text) + public function formatFileFromText(string $text): string { return preg_replace_callback('/in ("|")?(.+?)\1(?: +(?:on|at))? +line (\d+)/s', function ($match) { return 'in '.$this->formatFile($match[2], $match[3]); @@ -221,7 +207,7 @@ public function formatFileFromText(string $text) /** * @internal */ - public function formatLogMessage(string $message, array $context) + public function formatLogMessage(string $message, array $context): string { if ($context && false !== strpos($message, '{')) { $replacements = []; @@ -239,15 +225,7 @@ public function formatLogMessage(string $message, array $context) return htmlspecialchars($message, ENT_COMPAT | ENT_SUBSTITUTE, $this->charset); } - /** - * {@inheritdoc} - */ - public function getName() - { - return 'code'; - } - - protected static function fixCodeMarkup(string $line) + protected static function fixCodeMarkup(string $line): string { // ending tag from previous line $opening = strpos($line, ' * @author Titouan Galopin - * - * @final since Symfony 4.4 */ -class CsrfExtension extends AbstractExtension +final class CsrfExtension extends AbstractExtension { /** * {@inheritdoc} diff --git a/src/Symfony/Bridge/Twig/Extension/CsrfRuntime.php b/src/Symfony/Bridge/Twig/Extension/CsrfRuntime.php index ea857c7ed583b..c3d5da6470c25 100644 --- a/src/Symfony/Bridge/Twig/Extension/CsrfRuntime.php +++ b/src/Symfony/Bridge/Twig/Extension/CsrfRuntime.php @@ -16,10 +16,8 @@ /** * @author Christian Flothmann * @author Titouan Galopin - * - * @final since Symfony 4.4 */ -class CsrfRuntime +final class CsrfRuntime { private $csrfTokenManager; diff --git a/src/Symfony/Bridge/Twig/Extension/DumpExtension.php b/src/Symfony/Bridge/Twig/Extension/DumpExtension.php index f2ff5f7da533b..2187ed99bfb2a 100644 --- a/src/Symfony/Bridge/Twig/Extension/DumpExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/DumpExtension.php @@ -17,17 +17,14 @@ use Twig\Environment; use Twig\Extension\AbstractExtension; use Twig\Template; -use Twig\TokenParser\TokenParserInterface; use Twig\TwigFunction; /** * Provides integration of the dump() function with Twig. * * @author Nicolas Grekas - * - * @final since Symfony 4.4 */ -class DumpExtension extends AbstractExtension +final class DumpExtension extends AbstractExtension { private $cloner; private $dumper; @@ -39,9 +36,9 @@ public function __construct(ClonerInterface $cloner, HtmlDumper $dumper = null) } /** - * @return TwigFunction[] + * {@inheritdoc} */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('dump', [$this, 'dump'], ['is_safe' => ['html'], 'needs_context' => true, 'needs_environment' => true]), @@ -49,19 +46,14 @@ public function getFunctions() } /** - * @return TokenParserInterface[] + * {@inheritdoc} */ - public function getTokenParsers() + public function getTokenParsers(): array { return [new DumpTokenParser()]; } - public function getName() - { - return 'dump'; - } - - public function dump(Environment $env, array $context) + public function dump(Environment $env, array $context): ?string { if (!$env->isDebug()) { return null; diff --git a/src/Symfony/Bridge/Twig/Extension/ExpressionExtension.php b/src/Symfony/Bridge/Twig/Extension/ExpressionExtension.php index 5c5c84fdff2b1..8d2a35c99f682 100644 --- a/src/Symfony/Bridge/Twig/Extension/ExpressionExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/ExpressionExtension.php @@ -19,35 +19,21 @@ * ExpressionExtension gives a way to create Expressions from a template. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class ExpressionExtension extends AbstractExtension +final class ExpressionExtension extends AbstractExtension { /** * {@inheritdoc} - * - * @return TwigFunction[] */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('expression', [$this, 'createExpression']), ]; } - public function createExpression(string $expression) + public function createExpression(string $expression): Expression { return new Expression($expression); } - - /** - * Returns the name of the extension. - * - * @return string The extension name - */ - public function getName() - { - return 'expression'; - } } diff --git a/src/Symfony/Bridge/Twig/Extension/FormExtension.php b/src/Symfony/Bridge/Twig/Extension/FormExtension.php index 842042aac7acd..0f4076db53275 100644 --- a/src/Symfony/Bridge/Twig/Extension/FormExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/FormExtension.php @@ -15,7 +15,6 @@ use Symfony\Component\Form\ChoiceList\View\ChoiceView; use Symfony\Component\Form\FormView; use Twig\Extension\AbstractExtension; -use Twig\TokenParser\TokenParserInterface; use Twig\TwigFilter; use Twig\TwigFunction; use Twig\TwigTest; @@ -25,17 +24,13 @@ * * @author Fabien Potencier * @author Bernhard Schussek - * - * @final since Symfony 4.4 */ -class FormExtension extends AbstractExtension +final class FormExtension extends AbstractExtension { /** * {@inheritdoc} - * - * @return TokenParserInterface[] */ - public function getTokenParsers() + public function getTokenParsers(): array { return [ // {% form_theme form "SomeBundle::widgets.twig" %} @@ -45,10 +40,8 @@ public function getTokenParsers() /** * {@inheritdoc} - * - * @return TwigFunction[] */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('form_widget', null, ['node_class' => 'Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode', 'is_safe' => ['html']]), @@ -67,10 +60,8 @@ public function getFunctions() /** * {@inheritdoc} - * - * @return TwigFilter[] */ - public function getFilters() + public function getFilters(): array { return [ new TwigFilter('humanize', ['Symfony\Component\Form\FormRenderer', 'humanize']), @@ -80,24 +71,14 @@ public function getFilters() /** * {@inheritdoc} - * - * @return TwigTest[] */ - public function getTests() + public function getTests(): array { return [ new TwigTest('selectedchoice', 'Symfony\Bridge\Twig\Extension\twig_is_selected_choice'), new TwigTest('rootform', 'Symfony\Bridge\Twig\Extension\twig_is_root_form'), ]; } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'form'; - } } /** @@ -107,11 +88,9 @@ public function getName() * * @param string|array $selectedValue The selected value to compare * - * @return bool Whether the choice is selected - * * @see ChoiceView::isSelected() */ -function twig_is_selected_choice(ChoiceView $choice, $selectedValue) +function twig_is_selected_choice(ChoiceView $choice, $selectedValue): bool { if (\is_array($selectedValue)) { return \in_array($choice->value, $selectedValue, true); @@ -123,7 +102,7 @@ function twig_is_selected_choice(ChoiceView $choice, $selectedValue) /** * @internal */ -function twig_is_root_form(FormView $formView) +function twig_is_root_form(FormView $formView): bool { return null === $formView->parent; } diff --git a/src/Symfony/Bridge/Twig/Extension/HttpFoundationExtension.php b/src/Symfony/Bridge/Twig/Extension/HttpFoundationExtension.php index a99508d1e9036..a9ee05c4d0093 100644 --- a/src/Symfony/Bridge/Twig/Extension/HttpFoundationExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/HttpFoundationExtension.php @@ -20,10 +20,8 @@ * Twig extension for the Symfony HttpFoundation component. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class HttpFoundationExtension extends AbstractExtension +final class HttpFoundationExtension extends AbstractExtension { private $urlHelper; @@ -34,10 +32,8 @@ public function __construct(UrlHelper $urlHelper) /** * {@inheritdoc} - * - * @return TwigFunction[] */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('absolute_url', [$this, 'generateAbsoluteUrl']), @@ -50,11 +46,9 @@ public function getFunctions() * * This method returns the path unchanged if no request is available. * - * @return string The absolute URL - * * @see Request::getUriForPath() */ - public function generateAbsoluteUrl(string $path) + public function generateAbsoluteUrl(string $path): string { return $this->urlHelper->getAbsoluteUrl($path); } @@ -64,22 +58,10 @@ public function generateAbsoluteUrl(string $path) * * This method returns the path unchanged if no request is available. * - * @return string The relative path - * * @see Request::getRelativeUriForPath() */ - public function generateRelativePath(string $path) + public function generateRelativePath(string $path): string { return $this->urlHelper->getRelativePath($path); } - - /** - * Returns the name of the extension. - * - * @return string The extension name - */ - public function getName() - { - return 'request'; - } } diff --git a/src/Symfony/Bridge/Twig/Extension/HttpKernelExtension.php b/src/Symfony/Bridge/Twig/Extension/HttpKernelExtension.php index 3bd9d2e9cf9c2..f4b3e4b66953c 100644 --- a/src/Symfony/Bridge/Twig/Extension/HttpKernelExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/HttpKernelExtension.php @@ -19,15 +19,13 @@ * Provides integration with the HttpKernel component. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class HttpKernelExtension extends AbstractExtension +final class HttpKernelExtension extends AbstractExtension { /** - * @return TwigFunction[] + * {@inheritdoc} */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('render', [HttpKernelRuntime::class, 'renderFragment'], ['is_safe' => ['html']]), @@ -36,16 +34,8 @@ public function getFunctions() ]; } - public static function controller(string $controller, array $attributes = [], array $query = []) + public static function controller(string $controller, array $attributes = [], array $query = []): ControllerReference { return new ControllerReference($controller, $attributes, $query); } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'http_kernel'; - } } diff --git a/src/Symfony/Bridge/Twig/Extension/HttpKernelRuntime.php b/src/Symfony/Bridge/Twig/Extension/HttpKernelRuntime.php index 47311eb7947f8..6aab9566f9855 100644 --- a/src/Symfony/Bridge/Twig/Extension/HttpKernelRuntime.php +++ b/src/Symfony/Bridge/Twig/Extension/HttpKernelRuntime.php @@ -18,10 +18,8 @@ * Provides integration with the HttpKernel component. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class HttpKernelRuntime +final class HttpKernelRuntime { private $handler; @@ -35,11 +33,9 @@ public function __construct(FragmentHandler $handler) * * @param string|ControllerReference $uri A URI as a string or a ControllerReference instance * - * @return string The fragment content - * * @see FragmentHandler::render() */ - public function renderFragment($uri, array $options = []) + public function renderFragment($uri, array $options = []): string { $strategy = isset($options['strategy']) ? $options['strategy'] : 'inline'; unset($options['strategy']); @@ -52,11 +48,9 @@ public function renderFragment($uri, array $options = []) * * @param string|ControllerReference $uri A URI as a string or a ControllerReference instance * - * @return string The fragment content - * * @see FragmentHandler::render() */ - public function renderFragmentStrategy(string $strategy, $uri, array $options = []) + public function renderFragmentStrategy(string $strategy, $uri, array $options = []): string { return $this->handler->render($uri, $strategy, $options); } diff --git a/src/Symfony/Bridge/Twig/Extension/LogoutUrlExtension.php b/src/Symfony/Bridge/Twig/Extension/LogoutUrlExtension.php index 8e3bb87622b9a..071b9ff247f1d 100644 --- a/src/Symfony/Bridge/Twig/Extension/LogoutUrlExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/LogoutUrlExtension.php @@ -19,10 +19,8 @@ * LogoutUrlHelper provides generator functions for the logout URL to Twig. * * @author Jeremy Mikola - * - * @final since Symfony 4.4 */ -class LogoutUrlExtension extends AbstractExtension +final class LogoutUrlExtension extends AbstractExtension { private $generator; @@ -33,10 +31,8 @@ public function __construct(LogoutUrlGenerator $generator) /** * {@inheritdoc} - * - * @return TwigFunction[] */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('logout_url', [$this, 'getLogoutUrl']), @@ -48,10 +44,8 @@ public function getFunctions() * Generates the relative logout URL for the firewall. * * @param string|null $key The firewall key or null to use the current firewall key - * - * @return string The relative logout URL */ - public function getLogoutPath(string $key = null) + public function getLogoutPath(string $key = null): string { return $this->generator->getLogoutPath($key); } @@ -60,19 +54,9 @@ public function getLogoutPath(string $key = null) * Generates the absolute logout URL for the firewall. * * @param string|null $key The firewall key or null to use the current firewall key - * - * @return string The absolute logout URL */ - public function getLogoutUrl(string $key = null) + public function getLogoutUrl(string $key = null): string { return $this->generator->getLogoutUrl($key); } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'logout_url'; - } } diff --git a/src/Symfony/Bridge/Twig/Extension/ProfilerExtension.php b/src/Symfony/Bridge/Twig/Extension/ProfilerExtension.php index 0d5d1d1fb3ff0..fcc4396f1c9a1 100644 --- a/src/Symfony/Bridge/Twig/Extension/ProfilerExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/ProfilerExtension.php @@ -17,10 +17,8 @@ /** * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class ProfilerExtension extends BaseProfilerExtension +final class ProfilerExtension extends BaseProfilerExtension { private $stopwatch; private $events; @@ -33,7 +31,7 @@ public function __construct(Profile $profile, Stopwatch $stopwatch = null) $this->events = new \SplObjectStorage(); } - public function enter(Profile $profile) + public function enter(Profile $profile): void { if ($this->stopwatch && $profile->isTemplate()) { $this->events[$profile] = $this->stopwatch->start($profile->getName(), 'template'); @@ -42,7 +40,7 @@ public function enter(Profile $profile) parent::enter($profile); } - public function leave(Profile $profile) + public function leave(Profile $profile): void { parent::leave($profile); @@ -51,12 +49,4 @@ public function leave(Profile $profile) unset($this->events[$profile]); } } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'native_profiler'; - } } diff --git a/src/Symfony/Bridge/Twig/Extension/RoutingExtension.php b/src/Symfony/Bridge/Twig/Extension/RoutingExtension.php index 7d2c580e2ebd2..800c22f6d4c2c 100644 --- a/src/Symfony/Bridge/Twig/Extension/RoutingExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/RoutingExtension.php @@ -22,10 +22,8 @@ * Provides integration of the Routing component with Twig. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class RoutingExtension extends AbstractExtension +final class RoutingExtension extends AbstractExtension { private $generator; @@ -36,10 +34,8 @@ public function __construct(UrlGeneratorInterface $generator) /** * {@inheritdoc} - * - * @return TwigFunction[] */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('url', [$this, 'getUrl'], ['is_safe_callback' => [$this, 'isUrlGenerationSafe']]), @@ -47,18 +43,12 @@ public function getFunctions() ]; } - /** - * @return string - */ - public function getPath(string $name, array $parameters = [], bool $relative = false) + public function getPath(string $name, array $parameters = [], bool $relative = false): string { return $this->generator->generate($name, $parameters, $relative ? UrlGeneratorInterface::RELATIVE_PATH : UrlGeneratorInterface::ABSOLUTE_PATH); } - /** - * @return string - */ - public function getUrl(string $name, array $parameters = [], bool $schemeRelative = false) + public function getUrl(string $name, array $parameters = [], bool $schemeRelative = false): string { return $this->generator->generate($name, $parameters, $schemeRelative ? UrlGeneratorInterface::NETWORK_PATH : UrlGeneratorInterface::ABSOLUTE_URL); } @@ -84,8 +74,6 @@ public function getUrl(string $name, array $parameters = [], bool $schemeRelativ * @param Node $argsNode The arguments of the path/url function * * @return array An array with the contexts the URL is safe - * - * @final */ public function isUrlGenerationSafe(Node $argsNode): array { @@ -102,12 +90,4 @@ public function isUrlGenerationSafe(Node $argsNode): array return []; } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'routing'; - } } diff --git a/src/Symfony/Bridge/Twig/Extension/SecurityExtension.php b/src/Symfony/Bridge/Twig/Extension/SecurityExtension.php index 0335040fb3e0f..c70e0bb646d29 100644 --- a/src/Symfony/Bridge/Twig/Extension/SecurityExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/SecurityExtension.php @@ -21,10 +21,8 @@ * SecurityExtension exposes security context features. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class SecurityExtension extends AbstractExtension +final class SecurityExtension extends AbstractExtension { private $securityChecker; @@ -33,7 +31,7 @@ public function __construct(AuthorizationCheckerInterface $securityChecker = nul $this->securityChecker = $securityChecker; } - public function isGranted($role, object $object = null, string $field = null) + public function isGranted($role, object $object = null, string $field = null): bool { if (null === $this->securityChecker) { return false; @@ -52,21 +50,11 @@ public function isGranted($role, object $object = null, string $field = null) /** * {@inheritdoc} - * - * @return TwigFunction[] */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('is_granted', [$this, 'isGranted']), ]; } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'security'; - } } diff --git a/src/Symfony/Bridge/Twig/Extension/StopwatchExtension.php b/src/Symfony/Bridge/Twig/Extension/StopwatchExtension.php index f4b9a24ced5cd..80a25a949bdb5 100644 --- a/src/Symfony/Bridge/Twig/Extension/StopwatchExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/StopwatchExtension.php @@ -20,10 +20,8 @@ * Twig extension for the stopwatch helper. * * @author Wouter J - * - * @final since Symfony 4.4 */ -class StopwatchExtension extends AbstractExtension +final class StopwatchExtension extends AbstractExtension { private $stopwatch; private $enabled; @@ -34,7 +32,7 @@ public function __construct(Stopwatch $stopwatch = null, bool $enabled = true) $this->enabled = $enabled; } - public function getStopwatch() + public function getStopwatch(): Stopwatch { return $this->stopwatch; } @@ -42,7 +40,7 @@ public function getStopwatch() /** * @return TokenParserInterface[] */ - public function getTokenParsers() + public function getTokenParsers(): array { return [ /* @@ -53,9 +51,4 @@ public function getTokenParsers() new StopwatchTokenParser(null !== $this->stopwatch && $this->enabled), ]; } - - public function getName() - { - return 'stopwatch'; - } } diff --git a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php index dbdb177eef149..aa5a2dde3d746 100644 --- a/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/TranslationExtension.php @@ -19,17 +19,14 @@ use Symfony\Contracts\Translation\TranslatorTrait; use Twig\Extension\AbstractExtension; use Twig\NodeVisitor\NodeVisitorInterface; -use Twig\TokenParser\AbstractTokenParser; use Twig\TwigFilter; /** * Provides integration of the Translation component with Twig. * * @author Fabien Potencier - * - * @final */ -class TranslationExtension extends AbstractExtension +final class TranslationExtension extends AbstractExtension { private $translator; private $translationNodeVisitor; @@ -40,7 +37,7 @@ public function __construct(TranslatorInterface $translator = null, NodeVisitorI $this->translationNodeVisitor = $translationNodeVisitor; } - public function getTranslator(): ?TranslatorInterface + public function getTranslator(): TranslatorInterface { if (null === $this->translator) { if (!interface_exists(TranslatorInterface::class)) { @@ -57,8 +54,6 @@ public function getTranslator(): ?TranslatorInterface /** * {@inheritdoc} - * - * @return TwigFilter[] */ public function getFilters(): array { @@ -68,9 +63,7 @@ public function getFilters(): array } /** - * Returns the token parser instance to add to the existing list. - * - * @return AbstractTokenParser[] + * {@inheritdoc} */ public function getTokenParsers(): array { @@ -85,8 +78,6 @@ public function getTokenParsers(): array /** * {@inheritdoc} - * - * @return NodeVisitorInterface[] */ public function getNodeVisitors(): array { @@ -106,12 +97,4 @@ public function trans(string $message, array $arguments = [], string $domain = n return $this->getTranslator()->trans($message, $arguments, $domain, $locale); } - - /** - * {@inheritdoc} - */ - public function getName(): string - { - return 'translator'; - } } diff --git a/src/Symfony/Bridge/Twig/Extension/WebLinkExtension.php b/src/Symfony/Bridge/Twig/Extension/WebLinkExtension.php index fc62ffc6e78e7..4b8217d932f4e 100644 --- a/src/Symfony/Bridge/Twig/Extension/WebLinkExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/WebLinkExtension.php @@ -21,10 +21,8 @@ * Twig extension for the Symfony WebLink component. * * @author Kévin Dunglas - * - * @final since Symfony 4.4 */ -class WebLinkExtension extends AbstractExtension +final class WebLinkExtension extends AbstractExtension { private $requestStack; @@ -35,10 +33,8 @@ public function __construct(RequestStack $requestStack) /** * {@inheritdoc} - * - * @return TwigFunction[] */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('link', [$this, 'link']), @@ -58,7 +54,7 @@ public function getFunctions() * * @return string The relation URI */ - public function link(string $uri, string $rel, array $attributes = []) + public function link(string $uri, string $rel, array $attributes = []): string { if (!$request = $this->requestStack->getMasterRequest()) { return $uri; @@ -82,7 +78,7 @@ public function link(string $uri, string $rel, array $attributes = []) * * @return string The path of the asset */ - public function preload(string $uri, array $attributes = []) + public function preload(string $uri, array $attributes = []): string { return $this->link($uri, 'preload', $attributes); } @@ -94,7 +90,7 @@ public function preload(string $uri, array $attributes = []) * * @return string The path of the asset */ - public function dnsPrefetch(string $uri, array $attributes = []) + public function dnsPrefetch(string $uri, array $attributes = []): string { return $this->link($uri, 'dns-prefetch', $attributes); } @@ -106,7 +102,7 @@ public function dnsPrefetch(string $uri, array $attributes = []) * * @return string The path of the asset */ - public function preconnect(string $uri, array $attributes = []) + public function preconnect(string $uri, array $attributes = []): string { return $this->link($uri, 'preconnect', $attributes); } @@ -118,7 +114,7 @@ public function preconnect(string $uri, array $attributes = []) * * @return string The path of the asset */ - public function prefetch(string $uri, array $attributes = []) + public function prefetch(string $uri, array $attributes = []): string { return $this->link($uri, 'prefetch', $attributes); } @@ -130,7 +126,7 @@ public function prefetch(string $uri, array $attributes = []) * * @return string The path of the asset */ - public function prerender(string $uri, array $attributes = []) + public function prerender(string $uri, array $attributes = []): string { return $this->link($uri, 'prerender', $attributes); } diff --git a/src/Symfony/Bridge/Twig/Extension/WorkflowExtension.php b/src/Symfony/Bridge/Twig/Extension/WorkflowExtension.php index 6aefc450b1abe..d385567b13501 100644 --- a/src/Symfony/Bridge/Twig/Extension/WorkflowExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/WorkflowExtension.php @@ -21,10 +21,8 @@ * WorkflowExtension. * * @author Grégoire Pineau - * - * @final since Symfony 4.4 */ -class WorkflowExtension extends AbstractExtension +final class WorkflowExtension extends AbstractExtension { private $workflowRegistry; @@ -34,9 +32,9 @@ public function __construct(Registry $workflowRegistry) } /** - * @return TwigFunction[] + * {@inheritdoc} */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('workflow_can', [$this, 'canTransition']), @@ -50,10 +48,8 @@ public function getFunctions() /** * Returns true if the transition is enabled. - * - * @return bool true if the transition is enabled */ - public function canTransition(object $subject, string $transitionName, string $name = null) + public function canTransition(object $subject, string $transitionName, string $name = null): bool { return $this->workflowRegistry->get($subject, $name)->can($subject, $transitionName); } @@ -63,17 +59,15 @@ public function canTransition(object $subject, string $transitionName, string $n * * @return Transition[] All enabled transitions */ - public function getEnabledTransitions(object $subject, string $name = null) + public function getEnabledTransitions(object $subject, string $name = null): array { return $this->workflowRegistry->get($subject, $name)->getEnabledTransitions($subject); } /** * Returns true if the place is marked. - * - * @return bool true if the transition is enabled */ - public function hasMarkedPlace(object $subject, string $placeName, string $name = null) + public function hasMarkedPlace(object $subject, string $placeName, string $name = null): bool { return $this->workflowRegistry->get($subject, $name)->getMarking($subject)->has($placeName); } @@ -83,7 +77,7 @@ public function hasMarkedPlace(object $subject, string $placeName, string $name * * @return string[]|int[] */ - public function getMarkedPlaces(object $subject, bool $placesNameOnly = true, string $name = null) + public function getMarkedPlaces(object $subject, bool $placesNameOnly = true, string $name = null): array { $places = $this->workflowRegistry->get($subject, $name)->getMarking($subject)->getPlaces(); @@ -117,9 +111,4 @@ public function buildTransitionBlockerList(object $subject, string $transitionNa return $workflow->buildTransitionBlockerList($subject, $transitionName); } - - public function getName() - { - return 'workflow'; - } } diff --git a/src/Symfony/Bridge/Twig/Extension/YamlExtension.php b/src/Symfony/Bridge/Twig/Extension/YamlExtension.php index adf681376c6d1..63df1336030bf 100644 --- a/src/Symfony/Bridge/Twig/Extension/YamlExtension.php +++ b/src/Symfony/Bridge/Twig/Extension/YamlExtension.php @@ -12,7 +12,6 @@ namespace Symfony\Bridge\Twig\Extension; use Symfony\Component\Yaml\Dumper as YamlDumper; -use Symfony\Component\Yaml\Yaml; use Twig\Extension\AbstractExtension; use Twig\TwigFilter; @@ -20,17 +19,13 @@ * Provides integration of the Yaml component with Twig. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class YamlExtension extends AbstractExtension +final class YamlExtension extends AbstractExtension { /** * {@inheritdoc} - * - * @return TwigFilter[] */ - public function getFilters() + public function getFilters(): array { return [ new TwigFilter('yaml_encode', [$this, 'encode']), @@ -38,7 +33,7 @@ public function getFilters() ]; } - public function encode($input, int $inline = 0, int $dumpObjects = 0) + public function encode($input, int $inline = 0, int $dumpObjects = 0): string { static $dumper; @@ -53,7 +48,7 @@ public function encode($input, int $inline = 0, int $dumpObjects = 0) return $dumper->dump($input, $inline, 0, false, $dumpObjects); } - public function dump($value, int $inline = 0, int $dumpObjects = 0) + public function dump($value, int $inline = 0, int $dumpObjects = 0): string { if (\is_resource($value)) { return '%Resource%'; @@ -65,12 +60,4 @@ public function dump($value, int $inline = 0, int $dumpObjects = 0) return $this->encode($value, $inline, $dumpObjects); } - - /** - * {@inheritdoc} - */ - public function getName() - { - return 'yaml'; - } } diff --git a/src/Symfony/Bridge/Twig/Node/DumpNode.php b/src/Symfony/Bridge/Twig/Node/DumpNode.php index c6f20ada89668..205381c11d53e 100644 --- a/src/Symfony/Bridge/Twig/Node/DumpNode.php +++ b/src/Symfony/Bridge/Twig/Node/DumpNode.php @@ -16,14 +16,12 @@ /** * @author Julien Galenski - * - * @final since Symfony 4.4 */ -class DumpNode extends Node +final class DumpNode extends Node { private $varPrefix; - public function __construct($varPrefix, Node $values = null, int $lineno, string $tag = null) + public function __construct($varPrefix, ?Node $values, int $lineno, string $tag = null) { $nodes = []; if (null !== $values) { @@ -37,7 +35,7 @@ public function __construct($varPrefix, Node $values = null, int $lineno, string /** * {@inheritdoc} */ - public function compile(Compiler $compiler) + public function compile(Compiler $compiler): void { $compiler ->write("if (\$this->env->isDebug()) {\n") diff --git a/src/Symfony/Bridge/Twig/Node/FormThemeNode.php b/src/Symfony/Bridge/Twig/Node/FormThemeNode.php index 0f07c8cbc67c2..e37311267bb17 100644 --- a/src/Symfony/Bridge/Twig/Node/FormThemeNode.php +++ b/src/Symfony/Bridge/Twig/Node/FormThemeNode.php @@ -17,17 +17,15 @@ /** * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class FormThemeNode extends Node +final class FormThemeNode extends Node { public function __construct(Node $form, Node $resources, int $lineno, string $tag = null, bool $only = false) { parent::__construct(['form' => $form, 'resources' => $resources], ['only' => $only], $lineno, $tag); } - public function compile(Compiler $compiler) + public function compile(Compiler $compiler): void { $compiler ->addDebugInfo($this) diff --git a/src/Symfony/Bridge/Twig/Node/RenderBlockNode.php b/src/Symfony/Bridge/Twig/Node/RenderBlockNode.php index b4ba68cbef28a..4d4cf61365772 100644 --- a/src/Symfony/Bridge/Twig/Node/RenderBlockNode.php +++ b/src/Symfony/Bridge/Twig/Node/RenderBlockNode.php @@ -21,12 +21,10 @@ * is "foo", the block "foo" will be rendered. * * @author Bernhard Schussek - * - * @final since Symfony 4.4 */ -class RenderBlockNode extends FunctionExpression +final class RenderBlockNode extends FunctionExpression { - public function compile(Compiler $compiler) + public function compile(Compiler $compiler): void { $compiler->addDebugInfo($this); $arguments = iterator_to_array($this->getNode('arguments')); diff --git a/src/Symfony/Bridge/Twig/Node/SearchAndRenderBlockNode.php b/src/Symfony/Bridge/Twig/Node/SearchAndRenderBlockNode.php index 7b29c3b36b3d3..888171f1380be 100644 --- a/src/Symfony/Bridge/Twig/Node/SearchAndRenderBlockNode.php +++ b/src/Symfony/Bridge/Twig/Node/SearchAndRenderBlockNode.php @@ -18,12 +18,10 @@ /** * @author Bernhard Schussek - * - * @final since Symfony 4.4 */ -class SearchAndRenderBlockNode extends FunctionExpression +final class SearchAndRenderBlockNode extends FunctionExpression { - public function compile(Compiler $compiler) + public function compile(Compiler $compiler): void { $compiler->addDebugInfo($this); $compiler->raw('$this->env->getRuntime(\'Symfony\Component\Form\FormRenderer\')->searchAndRenderBlock('); diff --git a/src/Symfony/Bridge/Twig/Node/StopwatchNode.php b/src/Symfony/Bridge/Twig/Node/StopwatchNode.php index 1d6094cdaf91a..cfa4d8a197f9b 100644 --- a/src/Symfony/Bridge/Twig/Node/StopwatchNode.php +++ b/src/Symfony/Bridge/Twig/Node/StopwatchNode.php @@ -19,17 +19,15 @@ * Represents a stopwatch node. * * @author Wouter J - * - * @final since Symfony 4.4 */ -class StopwatchNode extends Node +final class StopwatchNode extends Node { public function __construct(Node $name, Node $body, AssignNameExpression $var, int $lineno = 0, string $tag = null) { parent::__construct(['body' => $body, 'name' => $name, 'var' => $var], [], $lineno, $tag); } - public function compile(Compiler $compiler) + public function compile(Compiler $compiler): void { $compiler ->addDebugInfo($this) diff --git a/src/Symfony/Bridge/Twig/Node/TransDefaultDomainNode.php b/src/Symfony/Bridge/Twig/Node/TransDefaultDomainNode.php index 06dc00270de42..df29f0a19931f 100644 --- a/src/Symfony/Bridge/Twig/Node/TransDefaultDomainNode.php +++ b/src/Symfony/Bridge/Twig/Node/TransDefaultDomainNode.php @@ -17,17 +17,15 @@ /** * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class TransDefaultDomainNode extends Node +final class TransDefaultDomainNode extends Node { public function __construct(AbstractExpression $expr, int $lineno = 0, string $tag = null) { parent::__construct(['expr' => $expr], [], $lineno, $tag); } - public function compile(Compiler $compiler) + public function compile(Compiler $compiler): void { // noop as this node is just a marker for TranslationDefaultDomainNodeVisitor } diff --git a/src/Symfony/Bridge/Twig/Node/TransNode.php b/src/Symfony/Bridge/Twig/Node/TransNode.php index 256bc4ceea277..da2b85d1c2861 100644 --- a/src/Symfony/Bridge/Twig/Node/TransNode.php +++ b/src/Symfony/Bridge/Twig/Node/TransNode.php @@ -19,15 +19,10 @@ use Twig\Node\Node; use Twig\Node\TextNode; -// BC/FC with namespaced Twig -class_exists('Twig\Node\Expression\ArrayExpression'); - /** * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class TransNode extends Node +final class TransNode extends Node { public function __construct(Node $body, Node $domain = null, AbstractExpression $count = null, AbstractExpression $vars = null, AbstractExpression $locale = null, int $lineno = 0, string $tag = null) { @@ -48,7 +43,7 @@ public function __construct(Node $body, Node $domain = null, AbstractExpression parent::__construct($nodes, [], $lineno, $tag); } - public function compile(Compiler $compiler) + public function compile(Compiler $compiler): void { $compiler->addDebugInfo($this); @@ -105,7 +100,7 @@ public function compile(Compiler $compiler) $compiler->raw(");\n"); } - protected function compileString(Node $body, ArrayExpression $vars, bool $ignoreStrictCheck = false) + private function compileString(Node $body, ArrayExpression $vars, bool $ignoreStrictCheck = false): array { if ($body instanceof ConstantExpression) { $msg = $body->getAttribute('value'); diff --git a/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php b/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php index 9fa39a431ca49..55bc3ae9a8959 100644 --- a/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php +++ b/src/Symfony/Bridge/Twig/NodeVisitor/TranslationDefaultDomainNodeVisitor.php @@ -27,10 +27,8 @@ /** * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class TranslationDefaultDomainNodeVisitor extends AbstractNodeVisitor +final class TranslationDefaultDomainNodeVisitor extends AbstractNodeVisitor { private $scope; @@ -41,10 +39,8 @@ public function __construct() /** * {@inheritdoc} - * - * @return Node */ - protected function doEnterNode(Node $node, Environment $env) + protected function doEnterNode(Node $node, Environment $env): Node { if ($node instanceof BlockNode || $node instanceof ModuleNode) { $this->scope = $this->scope->enter(); @@ -95,10 +91,8 @@ protected function doEnterNode(Node $node, Environment $env) /** * {@inheritdoc} - * - * @return Node|null */ - protected function doLeaveNode(Node $node, Environment $env) + protected function doLeaveNode(Node $node, Environment $env): ?Node { if ($node instanceof TransDefaultDomainNode) { return null; @@ -114,7 +108,7 @@ protected function doLeaveNode(Node $node, Environment $env) /** * {@inheritdoc} */ - public function getPriority() + public function getPriority(): int { return -10; } @@ -130,7 +124,7 @@ private function isNamedArguments(Node $arguments): bool return false; } - private function getVarName() + private function getVarName(): string { return sprintf('__internal_%s', hash('sha256', uniqid(mt_rand(), true), false)); } diff --git a/src/Symfony/Bridge/Twig/NodeVisitor/TranslationNodeVisitor.php b/src/Symfony/Bridge/Twig/NodeVisitor/TranslationNodeVisitor.php index 84d97df2fbeeb..89a15cd622c5d 100644 --- a/src/Symfony/Bridge/Twig/NodeVisitor/TranslationNodeVisitor.php +++ b/src/Symfony/Bridge/Twig/NodeVisitor/TranslationNodeVisitor.php @@ -22,39 +22,35 @@ * TranslationNodeVisitor extracts translation messages. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class TranslationNodeVisitor extends AbstractNodeVisitor +final class TranslationNodeVisitor extends AbstractNodeVisitor { const UNDEFINED_DOMAIN = '_undefined'; private $enabled = false; private $messages = []; - public function enable() + public function enable(): void { $this->enabled = true; $this->messages = []; } - public function disable() + public function disable(): void { $this->enabled = false; $this->messages = []; } - public function getMessages() + public function getMessages(): array { return $this->messages; } /** * {@inheritdoc} - * - * @return Node */ - protected function doEnterNode(Node $node, Environment $env) + protected function doEnterNode(Node $node, Environment $env): Node { if (!$this->enabled) { return $node; @@ -93,10 +89,8 @@ protected function doEnterNode(Node $node, Environment $env) /** * {@inheritdoc} - * - * @return Node|null */ - protected function doLeaveNode(Node $node, Environment $env) + protected function doLeaveNode(Node $node, Environment $env): ?Node { return $node; } @@ -104,7 +98,7 @@ protected function doLeaveNode(Node $node, Environment $env) /** * {@inheritdoc} */ - public function getPriority() + public function getPriority(): int { return 0; } diff --git a/src/Symfony/Bridge/Twig/Tests/Extension/CodeExtensionTest.php b/src/Symfony/Bridge/Twig/Tests/Extension/CodeExtensionTest.php index 874faeeb99955..33bb266cb6a2f 100644 --- a/src/Symfony/Bridge/Twig/Tests/Extension/CodeExtensionTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Extension/CodeExtensionTest.php @@ -44,7 +44,7 @@ public function testGettingMethodAbbreviation($method, $abbr) $this->assertEquals($this->getExtension()->abbrMethod($method), $abbr); } - public function getClassNameProvider() + public function getClassNameProvider(): array { return [ ['F\Q\N\Foo', 'Foo'], @@ -52,7 +52,7 @@ public function getClassNameProvider() ]; } - public function getMethodNameProvider() + public function getMethodNameProvider(): array { return [ ['F\Q\N\Foo::Method', 'Foo::Method()'], @@ -62,12 +62,7 @@ public function getMethodNameProvider() ]; } - public function testGetName() - { - $this->assertEquals('code', $this->getExtension()->getName()); - } - - protected function getExtension() + protected function getExtension(): CodeExtension { return new CodeExtension(new FileLinkFormatter('proto://%f#&line=%l&'.substr(__FILE__, 0, 5).'>foobar'), \DIRECTORY_SEPARATOR.'project', 'UTF-8'); } diff --git a/src/Symfony/Bridge/Twig/TokenParser/DumpTokenParser.php b/src/Symfony/Bridge/Twig/TokenParser/DumpTokenParser.php index c13297f23258d..341dc41855ab0 100644 --- a/src/Symfony/Bridge/Twig/TokenParser/DumpTokenParser.php +++ b/src/Symfony/Bridge/Twig/TokenParser/DumpTokenParser.php @@ -26,17 +26,13 @@ * {% dump foo, bar %} * * @author Julien Galenski - * - * @final since Symfony 4.4 */ -class DumpTokenParser extends AbstractTokenParser +final class DumpTokenParser extends AbstractTokenParser { /** * {@inheritdoc} - * - * @return Node */ - public function parse(Token $token) + public function parse(Token $token): Node { $values = null; if (!$this->parser->getStream()->test(Token::BLOCK_END_TYPE)) { @@ -49,10 +45,8 @@ public function parse(Token $token) /** * {@inheritdoc} - * - * @return string */ - public function getTag() + public function getTag(): string { return 'dump'; } diff --git a/src/Symfony/Bridge/Twig/TokenParser/FormThemeTokenParser.php b/src/Symfony/Bridge/Twig/TokenParser/FormThemeTokenParser.php index 58fe3dd6be261..ef5dacb59ddd1 100644 --- a/src/Symfony/Bridge/Twig/TokenParser/FormThemeTokenParser.php +++ b/src/Symfony/Bridge/Twig/TokenParser/FormThemeTokenParser.php @@ -21,17 +21,13 @@ * Token Parser for the 'form_theme' tag. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class FormThemeTokenParser extends AbstractTokenParser +final class FormThemeTokenParser extends AbstractTokenParser { /** - * Parses a token and returns a node. - * - * @return Node + * {@inheritdoc} */ - public function parse(Token $token) + public function parse(Token $token): Node { $lineno = $token->getLine(); $stream = $this->parser->getStream(); @@ -59,11 +55,9 @@ public function parse(Token $token) } /** - * Gets the tag name associated with this token parser. - * - * @return string The tag name + * {@inheritdoc} */ - public function getTag() + public function getTag(): string { return 'form_theme'; } diff --git a/src/Symfony/Bridge/Twig/TokenParser/StopwatchTokenParser.php b/src/Symfony/Bridge/Twig/TokenParser/StopwatchTokenParser.php index e1ac39cf8f390..a70e94b801b65 100644 --- a/src/Symfony/Bridge/Twig/TokenParser/StopwatchTokenParser.php +++ b/src/Symfony/Bridge/Twig/TokenParser/StopwatchTokenParser.php @@ -21,10 +21,8 @@ * Token Parser for the stopwatch tag. * * @author Wouter J - * - * @final since Symfony 4.4 */ -class StopwatchTokenParser extends AbstractTokenParser +final class StopwatchTokenParser extends AbstractTokenParser { protected $stopwatchIsAvailable; @@ -33,10 +31,7 @@ public function __construct(bool $stopwatchIsAvailable) $this->stopwatchIsAvailable = $stopwatchIsAvailable; } - /** - * @return Node - */ - public function parse(Token $token) + public function parse(Token $token): Node { $lineno = $token->getLine(); $stream = $this->parser->getStream(); @@ -57,15 +52,12 @@ public function parse(Token $token) return $body; } - public function decideStopwatchEnd(Token $token) + public function decideStopwatchEnd(Token $token): bool { return $token->test('endstopwatch'); } - /** - * @return string - */ - public function getTag() + public function getTag(): string { return 'stopwatch'; } diff --git a/src/Symfony/Bridge/Twig/TokenParser/TransDefaultDomainTokenParser.php b/src/Symfony/Bridge/Twig/TokenParser/TransDefaultDomainTokenParser.php index e6b16680f7b7c..19b820497d9fa 100644 --- a/src/Symfony/Bridge/Twig/TokenParser/TransDefaultDomainTokenParser.php +++ b/src/Symfony/Bridge/Twig/TokenParser/TransDefaultDomainTokenParser.php @@ -20,17 +20,13 @@ * Token Parser for the 'trans_default_domain' tag. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class TransDefaultDomainTokenParser extends AbstractTokenParser +final class TransDefaultDomainTokenParser extends AbstractTokenParser { /** * {@inheritdoc} - * - * @return Node */ - public function parse(Token $token) + public function parse(Token $token): Node { $expr = $this->parser->getExpressionParser()->parseExpression(); @@ -41,10 +37,8 @@ public function parse(Token $token) /** * {@inheritdoc} - * - * @return string */ - public function getTag() + public function getTag(): string { return 'trans_default_domain'; } diff --git a/src/Symfony/Bridge/Twig/TokenParser/TransTokenParser.php b/src/Symfony/Bridge/Twig/TokenParser/TransTokenParser.php index 294df51097fba..ffe8828590852 100644 --- a/src/Symfony/Bridge/Twig/TokenParser/TransTokenParser.php +++ b/src/Symfony/Bridge/Twig/TokenParser/TransTokenParser.php @@ -24,17 +24,13 @@ * Token Parser for the 'trans' tag. * * @author Fabien Potencier - * - * @final since Symfony 4.4 */ -class TransTokenParser extends AbstractTokenParser +final class TransTokenParser extends AbstractTokenParser { /** * {@inheritdoc} - * - * @return Node */ - public function parse(Token $token) + public function parse(Token $token): Node { $lineno = $token->getLine(); $stream = $this->parser->getStream(); @@ -84,17 +80,15 @@ public function parse(Token $token) return new TransNode($body, $domain, $count, $vars, $locale, $lineno, $this->getTag()); } - public function decideTransFork(Token $token) + public function decideTransFork(Token $token): bool { return $token->test(['endtrans']); } /** * {@inheritdoc} - * - * @return string */ - public function getTag() + public function getTag(): string { return 'trans'; } diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json index c90bf0cb92a37..e4b37a0580629 100644 --- a/src/Symfony/Bridge/Twig/composer.json +++ b/src/Symfony/Bridge/Twig/composer.json @@ -18,7 +18,7 @@ "require": { "php": "^7.2.9", "symfony/translation-contracts": "^1.1", - "twig/twig": "^2.10" + "twig/twig": "^2.10|^3" }, "require-dev": { "egulias/email-validator": "^2.0", diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index fbb1cac447f92..76b9e3e15c139 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -59,7 +59,7 @@ "symfony/web-link": "^4.4|^5.0", "doctrine/annotations": "~1.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "twig/twig": "^2.4" + "twig/twig": "^2.4|^3" }, "conflict": { "phpdocumentor/reflection-docblock": "<3.0", diff --git a/src/Symfony/Bundle/SecurityBundle/composer.json b/src/Symfony/Bundle/SecurityBundle/composer.json index 143506892fe21..75484a7ddf202 100644 --- a/src/Symfony/Bundle/SecurityBundle/composer.json +++ b/src/Symfony/Bundle/SecurityBundle/composer.json @@ -44,7 +44,7 @@ "symfony/yaml": "^4.4|^5.0", "symfony/expression-language": "^4.4|^5.0", "doctrine/doctrine-bundle": "^1.5|^2.0", - "twig/twig": "^2.4" + "twig/twig": "^2.4|^3" }, "conflict": { "symfony/browser-kit": "<4.4", diff --git a/src/Symfony/Bundle/TwigBundle/composer.json b/src/Symfony/Bundle/TwigBundle/composer.json index f497406a022a7..98a60e8d84f9c 100644 --- a/src/Symfony/Bundle/TwigBundle/composer.json +++ b/src/Symfony/Bundle/TwigBundle/composer.json @@ -23,7 +23,7 @@ "symfony/http-foundation": "^4.4|^5.0", "symfony/http-kernel": "^5.0", "symfony/polyfill-ctype": "~1.8", - "twig/twig": "^2.10" + "twig/twig": "^2.10|^3" }, "require-dev": { "symfony/asset": "^4.4|^5.0", diff --git a/src/Symfony/Bundle/WebProfilerBundle/composer.json b/src/Symfony/Bundle/WebProfilerBundle/composer.json index f565050158175..8f506f9d2fbfe 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/composer.json +++ b/src/Symfony/Bundle/WebProfilerBundle/composer.json @@ -23,7 +23,7 @@ "symfony/routing": "^4.4|^5.0", "symfony/twig-bundle": "^4.4|^5.0", "symfony/var-dumper": "^4.4|^5.0", - "twig/twig": "^2.10" + "twig/twig": "^2.10|^3" }, "require-dev": { "symfony/console": "^4.4|^5.0", diff --git a/src/Symfony/Component/HttpKernel/composer.json b/src/Symfony/Component/HttpKernel/composer.json index 5526cd5ff0d59..76c4f6d438ead 100644 --- a/src/Symfony/Component/HttpKernel/composer.json +++ b/src/Symfony/Component/HttpKernel/composer.json @@ -41,7 +41,7 @@ "symfony/translation-contracts": "^1.1", "symfony/var-dumper": "^4.4|^5.0", "psr/cache": "~1.0", - "twig/twig": "^2.4" + "twig/twig": "^2.4|^3" }, "provide": { "psr/log-implementation": "1.0" diff --git a/src/Symfony/Component/VarDumper/composer.json b/src/Symfony/Component/VarDumper/composer.json index 8c2d8daefcbe1..766cd38a807b2 100644 --- a/src/Symfony/Component/VarDumper/composer.json +++ b/src/Symfony/Component/VarDumper/composer.json @@ -23,7 +23,7 @@ "ext-iconv": "*", "symfony/console": "^4.4|^5.0", "symfony/process": "^4.4|^5.0", - "twig/twig": "^2.4" + "twig/twig": "^2.4|^3" }, "conflict": { "phpunit/phpunit": "<5.4.3",