From 8fadaca4db150878cbab47122819d1010e47144f Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Tue, 9 Apr 2024 08:05:14 +0200 Subject: [PATCH] defer addition of new method argument to 8.0 --- src/Symfony/Component/HttpFoundation/UriSigner.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/HttpFoundation/UriSigner.php b/src/Symfony/Component/HttpFoundation/UriSigner.php index 005fdced46de..4415026b15e0 100644 --- a/src/Symfony/Component/HttpFoundation/UriSigner.php +++ b/src/Symfony/Component/HttpFoundation/UriSigner.php @@ -51,8 +51,18 @@ public function __construct(#[\SensitiveParameter] string $secret, string $hashP * * The expiration is added as a query string parameter. */ - public function sign(string $uri, \DateTimeInterface|\DateInterval|int|null $expiration = null): string + public function sign(string $uri/*, \DateTimeInterface|\DateInterval|int|null $expiration = null*/): string { + $expiration = null; + + if (1 < \func_num_args()) { + $expiration = func_get_arg(1); + } + + if (null !== $expiration && !$expiration instanceof \DateTimeInterface && !$expiration instanceof \DateInterval && !\is_int($expiration)) { + throw new \TypeError(sprintf('The second argument of %s() must be an instance of %s or %s, an integer or null (%s given).', __METHOD__, \DateTimeInterface::class, \DateInterval::class, get_debug_type($expiration))); + } + $url = parse_url($uri); $params = [];