diff --git a/src/Symfony/Component/Console/Input/Input.php b/src/Symfony/Component/Console/Input/Input.php index 8c7905db78..ff5d3170f4 100644 --- a/src/Symfony/Component/Console/Input/Input.php +++ b/src/Symfony/Component/Console/Input/Input.php @@ -104,7 +104,7 @@ abstract class Input implements InputInterface, StreamableInputInterface /** * {@inheritdoc} */ - public function getArgument($name) + public function getArgument(string $name) { if (!$this->definition->hasArgument($name)) { throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); @@ -116,7 +116,7 @@ abstract class Input implements InputInterface, StreamableInputInterface /** * {@inheritdoc} */ - public function setArgument($name, $value) + public function setArgument(string $name, $value) { if (!$this->definition->hasArgument($name)) { throw new InvalidArgumentException(sprintf('The "%s" argument does not exist.', $name)); diff --git a/src/Symfony/Component/Security/Http/RememberMe/TokenBasedRememberMeServices.php b/src/Symfony/Component/Security/Http/RememberMe/TokenBasedRememberMeServices.php index f11e1dc02f..33427517ca 100644 --- a/src/Symfony/Component/Security/Http/RememberMe/TokenBasedRememberMeServices.php +++ b/src/Symfony/Component/Security/Http/RememberMe/TokenBasedRememberMeServices.php @@ -91,12 +91,12 @@ class TokenBasedRememberMeServices extends AbstractRememberMeServices /** * Generates the cookie value. * - * @param int $expires The Unix timestamp when the cookie expires - * @param string $password The encoded password + * @param int $expires The Unix timestamp when the cookie expires + * @param string|null $password The encoded password * * @return string */ - protected function generateCookieValue(string $class, string $username, int $expires, string $password) + protected function generateCookieValue(string $class, string $username, int $expires, ?string $password) { // $username is encoded because it might contain COOKIE_DELIMITER, // we assume other values don't @@ -111,12 +111,12 @@ class TokenBasedRememberMeServices extends AbstractRememberMeServices /** * Generates a hash for the cookie to ensure it is not being tampered with. * - * @param int $expires The Unix timestamp when the cookie expires - * @param string $password The encoded password + * @param int $expires The Unix timestamp when the cookie expires + * @param string|null $password The encoded password * * @return string */ - protected function generateCookieHash(string $class, string $username, int $expires, string $password) + protected function generateCookieHash(string $class, string $username, int $expires, ?string $password) { return hash_hmac('sha256', $class.self::COOKIE_DELIMITER.$username.self::COOKIE_DELIMITER.$expires.self::COOKIE_DELIMITER.$password, $this->getSecret()); } diff --git a/src/Symfony/Component/String/AbstractUnicodeString.php b/src/Symfony/Component/String/AbstractUnicodeString.php index fed79e2f53..08d87ccde8 100644 --- a/src/Symfony/Component/String/AbstractUnicodeString.php +++ b/src/Symfony/Component/String/AbstractUnicodeString.php @@ -172,7 +172,17 @@ abstract class AbstractUnicodeString extends AbstractString { $str = $this->slice($offset, 1); - return '' === $str->string ? [] : array_map('mb_ord', preg_split('//u', $str->string, -1, PREG_SPLIT_NO_EMPTY)); + if ('' === $str->string) { + return []; + } + + $codePoints = []; + + foreach (preg_split('//u', $str->string, -1, PREG_SPLIT_NO_EMPTY) as $c) { + $codePoints[] = mb_ord($c, 'UTF-8'); + } + + return $codePoints; } public function folded(bool $compat = true): parent diff --git a/src/Symfony/Component/String/CodePointString.php b/src/Symfony/Component/String/CodePointString.php index 8a729bb9e1..d1ac915701 100644 --- a/src/Symfony/Component/String/CodePointString.php +++ b/src/Symfony/Component/String/CodePointString.php @@ -79,7 +79,7 @@ class CodePointString extends AbstractUnicodeString { $str = $offset ? $this->slice($offset, 1) : $this; - return '' === $str->string ? [] : [mb_ord($str->string)]; + return '' === $str->string ? [] : [mb_ord($str->string, 'UTF-8')]; } public function endsWith($suffix): bool