From 1db15fa0f60c20b959f3654794fa2157f0729c4d Mon Sep 17 00:00:00 2001 From: Baldini Date: Wed, 20 Sep 2023 18:19:10 +0200 Subject: [PATCH] [PhpUnitBridge] Add some more native types --- .../Bridge/PhpUnit/ClassExistsMock.php | 33 ++------ src/Symfony/Bridge/PhpUnit/ClockMock.php | 38 +++------- .../PhpUnit/DeprecationErrorHandler.php | 19 +---- .../DeprecationErrorHandler/Configuration.php | 12 +-- .../DeprecationErrorHandler/Deprecation.php | 76 ++++--------------- .../DeprecationGroup.php | 17 +---- src/Symfony/Bridge/PhpUnit/DnsMock.php | 19 +---- .../DependencyInjection/Dumper/PhpDumper.php | 4 +- 8 files changed, 48 insertions(+), 170 deletions(-) diff --git a/src/Symfony/Bridge/PhpUnit/ClassExistsMock.php b/src/Symfony/Bridge/PhpUnit/ClassExistsMock.php index bbf9b76a0c3f3..72ec51e053d73 100644 --- a/src/Symfony/Bridge/PhpUnit/ClassExistsMock.php +++ b/src/Symfony/Bridge/PhpUnit/ClassExistsMock.php @@ -24,10 +24,8 @@ class ClassExistsMock * Configures the classes to be checked upon existence. * * @param array $classes Mocked class names as keys (case-sensitive, without leading root namespace slash) and booleans as values - * - * @return void */ - public static function withMockedClasses(array $classes) + public static function withMockedClasses(array $classes): void { self::$classes = $classes; } @@ -36,59 +34,42 @@ public static function withMockedClasses(array $classes) * Configures the enums to be checked upon existence. * * @param array $enums Mocked enums names as keys (case-sensitive, without leading root namespace slash) and booleans as values - * - * @return void */ - public static function withMockedEnums(array $enums) + public static function withMockedEnums(array $enums): void { self::$enums = $enums; self::$classes += $enums; } - /** - * @return bool - */ - public static function class_exists($name, $autoload = true) + public static function class_exists($name, $autoload = true): bool { $name = ltrim($name, '\\'); return isset(self::$classes[$name]) ? (bool) self::$classes[$name] : \class_exists($name, $autoload); } - /** - * @return bool - */ - public static function interface_exists($name, $autoload = true) + public static function interface_exists($name, $autoload = true): bool { $name = ltrim($name, '\\'); return isset(self::$classes[$name]) ? (bool) self::$classes[$name] : \interface_exists($name, $autoload); } - /** - * @return bool - */ - public static function trait_exists($name, $autoload = true) + public static function trait_exists($name, $autoload = true): bool { $name = ltrim($name, '\\'); return isset(self::$classes[$name]) ? (bool) self::$classes[$name] : \trait_exists($name, $autoload); } - /** - * @return bool - */ - public static function enum_exists($name, $autoload = true) + public static function enum_exists($name, $autoload = true):bool { $name = ltrim($name, '\\'); return isset(self::$enums[$name]) ? (bool) self::$enums[$name] : \enum_exists($name, $autoload); } - /** - * @return void - */ - public static function register($class) + public static function register($class): void { $self = static::class; diff --git a/src/Symfony/Bridge/PhpUnit/ClockMock.php b/src/Symfony/Bridge/PhpUnit/ClockMock.php index 64a7ac8fa14d7..95cfc6a38f239 100644 --- a/src/Symfony/Bridge/PhpUnit/ClockMock.php +++ b/src/Symfony/Bridge/PhpUnit/ClockMock.php @@ -19,10 +19,7 @@ class ClockMock { private static $now; - /** - * @return bool|null - */ - public static function withClockMock($enable = null) + public static function withClockMock($enable = null): ?bool { if (null === $enable) { return null !== self::$now; @@ -33,10 +30,7 @@ public static function withClockMock($enable = null) return null; } - /** - * @return int - */ - public static function time() + public static function time(): int { if (null === self::$now) { return \time(); @@ -45,10 +39,7 @@ public static function time() return (int) self::$now; } - /** - * @return int - */ - public static function sleep($s) + public static function sleep($s): int { if (null === self::$now) { return \sleep($s); @@ -59,10 +50,7 @@ public static function sleep($s) return 0; } - /** - * @return void - */ - public static function usleep($us) + public static function usleep($us): void { if (null === self::$now) { \usleep($us); @@ -71,6 +59,9 @@ public static function usleep($us) } } + /** + * @return string|float + */ public static function microtime($asFloat = false) { if (null === self::$now) { @@ -84,10 +75,7 @@ public static function microtime($asFloat = false) return sprintf('%0.6f00 %d', self::$now - (int) self::$now, (int) self::$now); } - /** - * @return string - */ - public static function date($format, $timestamp = null) + public static function date($format, $timestamp = null): string { if (null === $timestamp) { $timestamp = self::time(); @@ -96,10 +84,7 @@ public static function date($format, $timestamp = null) return \date($format, $timestamp); } - /** - * @return string - */ - public static function gmdate($format, $timestamp = null) + public static function gmdate($format, $timestamp = null): string { if (null === $timestamp) { $timestamp = self::time(); @@ -124,10 +109,7 @@ public static function hrtime($asNumber = false) return [(int) self::$now, (int) $ns]; } - /** - * @return void - */ - public static function register($class) + public static function register($class): void { $self = static::class; diff --git a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php index f3a78b97f45d0..cf0de6c90b1c2 100644 --- a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php +++ b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php @@ -278,13 +278,7 @@ private function getConfiguration() return $this->configuration = Configuration::fromUrlEncodedString((string) $mode); } - /** - * @param string $str - * @param bool $red - * - * @return string - */ - private static function colorize($str, $red) + private static function colorize(string $str, bool $red): string { if (!self::hasColorSupport()) { return $str; @@ -296,12 +290,9 @@ private static function colorize($str, $red) } /** - * @param string[] $groups - * @param Configuration $configuration - * - * @throws \InvalidArgumentException + * @param string[] $groups */ - private function displayDeprecations($groups, $configuration) + private function displayDeprecations(array $groups, Configuration $configuration): void { $cmp = function ($a, $b) { return $b->count() - $a->count(); @@ -397,10 +388,8 @@ private static function getPhpUnitErrorHandler(): callable * * Reference: Composer\XdebugHandler\Process::supportsColor * https://github.com/composer/xdebug-handler - * - * @return bool */ - private static function hasColorSupport() + private static function hasColorSupport(): bool { if (!\defined('STDOUT')) { return false; diff --git a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Configuration.php b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Configuration.php index 54182d2069c94..d9162e81e328e 100644 --- a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Configuration.php +++ b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Configuration.php @@ -70,7 +70,7 @@ class Configuration * @param string $baselineFile The path to the baseline file * @param string|null $logFile The path to the log file */ - private function __construct(array $thresholds = [], $regex = '', $verboseOutput = [], $ignoreFile = '', $generateBaseline = false, $baselineFile = '', $logFile = null) + private function __construct(array $thresholds = [], string $regex = '', array $verboseOutput = [], string $ignoreFile = '', bool $generateBaseline = false, string $baselineFile = '', string $logFile = null) { $groups = ['total', 'indirect', 'direct', 'self']; @@ -279,10 +279,7 @@ public function writeBaseline(): void file_put_contents($this->baselineFile, json_encode($map, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES)); } - /** - * @param string $message - */ - public function shouldDisplayStackTrace($message): bool + public function shouldDisplayStackTrace(string $message): bool { return '' !== $this->regex && preg_match($this->regex, $message); } @@ -308,10 +305,9 @@ public function getLogFile(): ?string } /** - * @param string $serializedConfiguration an encoded string, for instance - * max[total]=1234&max[indirect]=42 + * @param string $serializedConfiguration An encoded string, for instance max[total]=1234&max[indirect]=42 */ - public static function fromUrlEncodedString($serializedConfiguration): self + public static function fromUrlEncodedString(string $serializedConfiguration): self { parse_str($serializedConfiguration, $normalizedConfiguration); foreach (array_keys($normalizedConfiguration) as $key) { diff --git a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php index 79cfa0cc9fe85..2d65648ebab98 100644 --- a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php +++ b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/Deprecation.php @@ -55,12 +55,7 @@ class Deprecation private $originalFilesStack; - /** - * @param string $message - * @param string $file - * @param bool $languageDeprecation - */ - public function __construct($message, array $trace, $file, $languageDeprecation = false) + public function __construct(string $message, array $trace, string $file, bool $languageDeprecation = false) { if (DebugClassLoader::class === ($trace[2]['class'] ?? '')) { $this->triggeringClass = $trace[2]['args'][0]; @@ -159,10 +154,7 @@ public function __construct($message, array $trace, $file, $languageDeprecation } } - /** - * @return bool - */ - private function lineShouldBeSkipped(array $line) + private function lineShouldBeSkipped(array $line): bool { if (!isset($line['class'])) { return true; @@ -172,18 +164,12 @@ private function lineShouldBeSkipped(array $line) return 'ReflectionMethod' === $class || 0 === strpos($class, 'PHPUnit\\'); } - /** - * @return bool - */ - public function originatesFromDebugClassLoader() + public function originatesFromDebugClassLoader(): bool { return isset($this->triggeringClass); } - /** - * @return string - */ - public function triggeringClass() + public function triggeringClass(): string { if (null === $this->triggeringClass) { throw new \LogicException('Check with originatesFromDebugClassLoader() before calling this method.'); @@ -192,18 +178,12 @@ public function triggeringClass() return $this->triggeringClass; } - /** - * @return bool - */ - public function originatesFromAnObject() + public function originatesFromAnObject(): bool { return isset($this->originClass); } - /** - * @return string - */ - public function originatingClass() + public function originatingClass(): string { if (null === $this->originClass) { throw new \LogicException('Check with originatesFromAnObject() before calling this method.'); @@ -214,10 +194,7 @@ public function originatingClass() return false !== strpos($class, "@anonymous\0") ? (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous' : $class; } - /** - * @return string - */ - public function originatingMethod() + public function originatingMethod(): string { if (null === $this->originMethod) { throw new \LogicException('Check with originatesFromAnObject() before calling this method.'); @@ -226,18 +203,12 @@ public function originatingMethod() return $this->originMethod; } - /** - * @return string - */ - public function getMessage() + public function getMessage(): string { return $this->message; } - /** - * @return bool - */ - public function isLegacy() + public function isLegacy(): bool { if (!$this->originClass || (new \ReflectionClass($this->originClass))->isInternal()) { return false; @@ -253,10 +224,7 @@ public function isLegacy() || \in_array('legacy', $groups($this->originClass, $method), true); } - /** - * @return bool - */ - public function isMuted() + public function isMuted(): bool { if ('Function ReflectionType::__toString() is deprecated' !== $this->message) { return false; @@ -271,10 +239,8 @@ public function isMuted() /** * Tells whether both the calling package and the called package are vendor * packages. - * - * @return string */ - public function getType() + public function getType(): string { $pathType = $this->getPathType($this->triggeringFile); if ($this->languageDeprecation && self::PATH_TYPE_VENDOR === $pathType) { @@ -331,12 +297,8 @@ private function getOriginalFilesStack() /** * getPathType() should always be called prior to calling this method. - * - * @param string $path - * - * @return string */ - private function getPackage($path) + private function getPackage(string $path): string { $path = realpath($path) ?: $path; foreach (self::getVendors() as $vendorRoot) { @@ -357,7 +319,7 @@ private function getPackage($path) /** * @return string[] */ - private static function getVendors() + private static function getVendors(): array { if (null === self::$vendors) { self::$vendors = $paths = []; @@ -404,12 +366,7 @@ private static function addSourcePathsFromPrefixes(array $prefixesByNamespace, a return $paths; } - /** - * @param string $path - * - * @return string - */ - private function getPathType($path) + private function getPathType(string $path): string { $realPath = realpath($path); if (false === $realPath && '-' !== $path && 'Standard input code' !== $path) { @@ -430,10 +387,7 @@ private function getPathType($path) return self::PATH_TYPE_UNDETERMINED; } - /** - * @return string - */ - public function toString() + public function toString(): string { $exception = new \Exception($this->message); $reflection = new \ReflectionProperty($exception, 'trace'); diff --git a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/DeprecationGroup.php b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/DeprecationGroup.php index 23b95e19fc3d4..cc4b9c0467088 100644 --- a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/DeprecationGroup.php +++ b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler/DeprecationGroup.php @@ -23,21 +23,13 @@ final class DeprecationGroup */ private $deprecationNotices = []; - /** - * @param string $message - * @param string $class - * @param string $method - */ - public function addNoticeFromObject($message, $class, $method) + public function addNoticeFromObject(string $message, string $class, string $method): void { $this->deprecationNotice($message)->addObjectOccurrence($class, $method); $this->addNotice(); } - /** - * @param string $message - */ - public function addNoticeFromProceduralCode($message) + public function addNoticeFromProceduralCode(string $message): void { $this->deprecationNotice($message)->addProceduralOccurrence(); $this->addNotice(); @@ -48,10 +40,7 @@ public function addNotice() ++$this->count; } - /** - * @param string $message - */ - private function deprecationNotice($message): DeprecationNotice + private function deprecationNotice(string $message): DeprecationNotice { return $this->deprecationNotices[$message] ?? $this->deprecationNotices[$message] = new DeprecationNotice(); } diff --git a/src/Symfony/Bridge/PhpUnit/DnsMock.php b/src/Symfony/Bridge/PhpUnit/DnsMock.php index f0145e7d8a7f6..c558cd0bed39c 100644 --- a/src/Symfony/Bridge/PhpUnit/DnsMock.php +++ b/src/Symfony/Bridge/PhpUnit/DnsMock.php @@ -36,18 +36,13 @@ class DnsMock * Configures the mock values for DNS queries. * * @param array $hosts Mocked hosts as keys, arrays of DNS records as returned by dns_get_record() as values - * - * @return void */ - public static function withMockedHosts(array $hosts) + public static function withMockedHosts(array $hosts): void { self::$hosts = $hosts; } - /** - * @return bool - */ - public static function checkdnsrr($hostname, $type = 'MX') + public static function checkdnsrr($hostname, $type = 'MX'): bool { if (!self::$hosts) { return \checkdnsrr($hostname, $type); @@ -68,10 +63,7 @@ public static function checkdnsrr($hostname, $type = 'MX') return false; } - /** - * @return bool - */ - public static function getmxrr($hostname, &$mxhosts, &$weight = null) + public static function getmxrr($hostname, &$mxhosts, &$weight = null): bool { if (!self::$hosts) { return \getmxrr($hostname, $mxhosts, $weight); @@ -169,10 +161,7 @@ public static function dns_get_record($hostname, $type = \DNS_ANY, &$authns = nu return $records; } - /** - * @return void - */ - public static function register($class) + public static function register($class): void { $self = static::class; diff --git a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php index 86c5aa4c9f3ad..270277a4d5c8c 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php @@ -108,10 +108,8 @@ public function __construct(ContainerBuilder $container) /** * Sets the dumper to be used when dumping proxies in the generated container. - * - * @return void */ - public function setProxyDumper(DumperInterface $proxyDumper) + public function setProxyDumper(DumperInterface $proxyDumper): void { $this->proxyDumper = $proxyDumper; $this->hasProxyDumper = !$proxyDumper instanceof NullDumper;