diff --git a/app/src/Bootstrap/BootManager.php b/app/src/Bootstrap/BootManager.php index 88ec84c..cdd17ad 100644 --- a/app/src/Bootstrap/BootManager.php +++ b/app/src/Bootstrap/BootManager.php @@ -10,7 +10,7 @@ class BootManager /** Create the application service container. */ public static function createContainer(string $configPath, string $cachePath): Container { - /** @var iterable $configFiles */ + /** @var list $configFiles */ $configFiles = glob($configPath . '/*.php') ?: []; $container = (new ContainerBuilder)->addDefinitions(...$configFiles); diff --git a/app/src/CallbackStream.php b/app/src/CallbackStream.php index e2e2296..6c56655 100644 --- a/app/src/CallbackStream.php +++ b/app/src/CallbackStream.php @@ -33,14 +33,13 @@ class CallbackStream implements StreamInterface $this->callback = $callback; } - /** @return string */ - public function __toString() + public function __toString(): string { return ''; } /** Closes the stream and any underlying resources. */ - public function close() {} + public function close(): void {} /** * Separates any underlying resources from the stream. @@ -61,7 +60,7 @@ class CallbackStream implements StreamInterface * * @return int|null returns the size in bytes if known, or null if unknown */ - public function getSize() + public function getSize(): ?int { return null; } @@ -71,7 +70,7 @@ class CallbackStream implements StreamInterface * * @return int Position of the file pointer */ - public function tell() + public function tell(): int { return 0; } @@ -81,7 +80,7 @@ class CallbackStream implements StreamInterface * * @return bool */ - public function eof() + public function eof(): bool { return $this->called; } @@ -91,7 +90,7 @@ class CallbackStream implements StreamInterface * * @return bool */ - public function isSeekable() + public function isSeekable(): bool { return false; } @@ -116,22 +115,17 @@ class CallbackStream implements StreamInterface * If the stream is not seekable, this method will raise an exception; * otherwise, it will perform a seek(0). * - * @see http://www.php.net/manual/en/function.fseek.php * @see seek() - * - * @return bool + * @link http://www.php.net/manual/en/function.fseek.php */ - public function rewind() - { - return false; - } + public function rewind(): void {} /** * Returns whether the stream is writable. * * @return bool */ - public function isWritable() + public function isWritable(): bool { return false; } @@ -143,7 +137,7 @@ class CallbackStream implements StreamInterface * * @return int returns the number of bytes written to the stream */ - public function write($string) + public function write($string): int { return 0; } @@ -153,7 +147,7 @@ class CallbackStream implements StreamInterface * * @return bool */ - public function isReadable() + public function isReadable(): bool { return true; } @@ -166,7 +160,7 @@ class CallbackStream implements StreamInterface * * @return string returns the data read from the stream, or an empty string if no bytes are available */ - public function read($length) + public function read($length): string { if ($this->called || ! $this->callback) { return ''; @@ -185,7 +179,7 @@ class CallbackStream implements StreamInterface * * @return string */ - public function getContents() + public function getContents(): string { return ''; } diff --git a/app/src/Controllers/ZipController.php b/app/src/Controllers/ZipController.php index 8ddb665..f33cd2c 100644 --- a/app/src/Controllers/ZipController.php +++ b/app/src/Controllers/ZipController.php @@ -80,6 +80,7 @@ class ZipController foreach ($files as $file) { try { + /** @throws RuntimeException */ $modifiedTime = new DateTime('@' . (int) $file->getMTime()); } catch (RuntimeException) { $modifiedTime = new DateTime('@' . (int) lstat($file->getPathname())['mtime']); diff --git a/composer.json b/composer.json index e2113ff..7e35f71 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,7 @@ "maennchen/zipstream-php": "^3.1", "php-di/php-di": "^7.0", "php-di/slim-bridge": "^3.0", - "psr/http-message": "^1.1", + "psr/http-message": "^2.0", "slim/psr7": "^1.0", "slim/slim": "^4.3", "slim/twig-view": "^3.0", @@ -39,10 +39,10 @@ "friendsofphp/php-cs-fixer": "!=3.5.0", "johnkary/phpunit-speedtrap": "^4.0", "phlak/coding-standards": "^2.0", - "phpstan/phpstan": "^1.0", + "phpstan/phpstan": "^2.0", "psy/psysh": "^0.12.0", "symfony/var-dumper": "^6.0", - "yoast/phpunit-polyfills": "^2.0" + "yoast/phpunit-polyfills": "^3.0" }, "suggest": { "ext-apcu": "Required to use the APCu cache driver", diff --git a/composer.lock b/composer.lock index 7e1eb7e..9cb14e6 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c780d21e8e8d1639c1b4fdf63b62d5ed", + "content-hash": "322cb5c7e9b364c14b81d8db9ad456a3", "packages": [ { "name": "erusev/parsedown", @@ -298,16 +298,16 @@ }, { "name": "laravel/serializable-closure", - "version": "v1.3.5", + "version": "v1.3.7", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c" + "reference": "4f48ade902b94323ca3be7646db16209ec76be3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c", - "reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d", + "reference": "4f48ade902b94323ca3be7646db16209ec76be3d", "shasum": "" }, "require": { @@ -355,7 +355,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2024-09-23T13:33:08+00:00" + "time": "2024-11-14T18:34:49+00:00" }, { "name": "maennchen/zipstream-php", @@ -946,16 +946,16 @@ }, { "name": "psr/http-message", - "version": "1.1", + "version": "2.0", "source": { "type": "git", "url": "https://github.com/php-fig/http-message.git", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { @@ -964,7 +964,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -979,7 +979,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for HTTP messages", @@ -993,9 +993,9 @@ "response" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/1.1" + "source": "https://github.com/php-fig/http-message/tree/2.0" }, - "time": "2023-04-04T09:50:52+00:00" + "time": "2023-04-04T09:54:51+00:00" }, { "name": "psr/http-server-handler", @@ -1469,16 +1469,16 @@ }, { "name": "symfony/cache", - "version": "v6.4.13", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "8079a3006f53805e7771d086b62428b7cac481dd" + "reference": "36fb8aa88833708e9f29014b6f15fac051a8b613" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/8079a3006f53805e7771d086b62428b7cac481dd", - "reference": "8079a3006f53805e7771d086b62428b7cac481dd", + "url": "https://api.github.com/repos/symfony/cache/zipball/36fb8aa88833708e9f29014b6f15fac051a8b613", + "reference": "36fb8aa88833708e9f29014b6f15fac051a8b613", "shasum": "" }, "require": { @@ -1545,7 +1545,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.13" + "source": "https://github.com/symfony/cache/tree/v6.4.14" }, "funding": [ { @@ -1561,7 +1561,7 @@ "type": "tidelift" } ], - "time": "2024-10-25T15:39:47+00:00" + "time": "2024-11-05T15:34:40+00:00" }, { "name": "symfony/cache-contracts", @@ -2343,16 +2343,16 @@ }, { "name": "symfony/var-dumper", - "version": "v6.4.13", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41" + "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41", - "reference": "2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", + "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80", "shasum": "" }, "require": { @@ -2408,7 +2408,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.13" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.15" }, "funding": [ { @@ -2424,7 +2424,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2024-11-08T15:28:48+00:00" }, { "name": "symfony/var-exporter", @@ -2632,16 +2632,16 @@ }, { "name": "twig/twig", - "version": "v3.14.0", + "version": "v3.15.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72" + "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/126b2c97818dbff0cdf3fbfc881aedb3d40aae72", - "reference": "126b2c97818dbff0cdf3fbfc881aedb3d40aae72", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/2d5b3964cc21d0188633d7ddce732dc8e874db02", + "reference": "2d5b3964cc21d0188633d7ddce732dc8e874db02", "shasum": "" }, "require": { @@ -2695,7 +2695,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.14.0" + "source": "https://github.com/twigphp/Twig/tree/v3.15.0" }, "funding": [ { @@ -2707,7 +2707,7 @@ "type": "tidelift" } ], - "time": "2024-09-09T17:55:12+00:00" + "time": "2024-11-17T15:59:19+00:00" }, { "name": "vlucas/phpdotenv", @@ -2942,16 +2942,16 @@ }, { "name": "composer/pcre", - "version": "3.3.1", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", - "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "shasum": "" }, "require": { @@ -2961,8 +2961,8 @@ "phpstan/phpstan": "<1.11.10" }, "require-dev": { - "phpstan/phpstan": "^1.11.10", - "phpstan/phpstan-strict-rules": "^1.1", + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", "phpunit/phpunit": "^8 || ^9" }, "type": "library", @@ -3001,7 +3001,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.3.1" + "source": "https://github.com/composer/pcre/tree/3.3.2" }, "funding": [ { @@ -3017,7 +3017,7 @@ "type": "tidelift" } ], - "time": "2024-08-27T18:44:43+00:00" + "time": "2024-11-12T16:29:46+00:00" }, { "name": "composer/semver", @@ -3562,16 +3562,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.12.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", "shasum": "" }, "require": { @@ -3610,7 +3610,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" }, "funding": [ { @@ -3618,7 +3618,7 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" + "time": "2024-11-08T17:47:46+00:00" }, { "name": "nikic/php-parser", @@ -3858,20 +3858,20 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.7", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0" + "reference": "6c98c7600fc717b2c78c11ef60040d5b1e359c82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/dc2b9976bd8b0f84ec9b0e50cc35378551de7af0", - "reference": "dc2b9976bd8b0f84ec9b0e50cc35378551de7af0", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/6c98c7600fc717b2c78c11ef60040d5b1e359c82", + "reference": "6c98c7600fc717b2c78c11ef60040d5b1e359c82", "shasum": "" }, "require": { - "php": "^7.2|^8.0" + "php": "^7.4|^8.0" }, "conflict": { "phpstan/phpstan-shim": "*" @@ -3912,7 +3912,7 @@ "type": "github" } ], - "time": "2024-10-18T11:12:07+00:00" + "time": "2024-11-17T14:17:00+00:00" }, { "name": "phpunit/php-code-coverage", @@ -5960,16 +5960,16 @@ }, { "name": "symfony/console", - "version": "v6.4.13", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79" + "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f793dd5a7d9ae9923e35d0503d08ba734cec1d79", - "reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79", + "url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", + "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", "shasum": "" }, "require": { @@ -6034,7 +6034,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.13" + "source": "https://github.com/symfony/console/tree/v6.4.15" }, "funding": [ { @@ -6050,7 +6050,7 @@ "type": "tidelift" } ], - "time": "2024-10-09T08:40:40+00:00" + "time": "2024-11-06T14:19:14+00:00" }, { "name": "symfony/event-dispatcher", @@ -6502,16 +6502,16 @@ }, { "name": "symfony/process", - "version": "v6.4.13", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "1f9f59b46880201629df3bd950fc5ae8c55b960f" + "reference": "3cb242f059c14ae08591c5c4087d1fe443564392" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/1f9f59b46880201629df3bd950fc5ae8c55b960f", - "reference": "1f9f59b46880201629df3bd950fc5ae8c55b960f", + "url": "https://api.github.com/repos/symfony/process/zipball/3cb242f059c14ae08591c5c4087d1fe443564392", + "reference": "3cb242f059c14ae08591c5c4087d1fe443564392", "shasum": "" }, "require": { @@ -6543,7 +6543,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.13" + "source": "https://github.com/symfony/process/tree/v6.4.15" }, "funding": [ { @@ -6559,7 +6559,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2024-11-06T14:19:14+00:00" }, { "name": "symfony/stopwatch", @@ -6625,16 +6625,16 @@ }, { "name": "symfony/string", - "version": "v6.4.13", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627" + "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/38371c60c71c72b3d64d8d76f6b1bb81a2cc3627", - "reference": "38371c60c71c72b3d64d8d76f6b1bb81a2cc3627", + "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", + "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", "shasum": "" }, "require": { @@ -6691,7 +6691,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.13" + "source": "https://github.com/symfony/string/tree/v6.4.15" }, "funding": [ { @@ -6707,7 +6707,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2024-11-13T13:31:12+00:00" }, { "name": "theseer/tokenizer", @@ -6761,21 +6761,21 @@ }, { "name": "yoast/phpunit-polyfills", - "version": "2.0.2", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/Yoast/PHPUnit-Polyfills.git", - "reference": "562f449a2ec8ab92fe7b30d94da9622c7b1345fe" + "reference": "19e6d5fb8aad31f731f774f9646a10c64a8843d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/562f449a2ec8ab92fe7b30d94da9622c7b1345fe", - "reference": "562f449a2ec8ab92fe7b30d94da9622c7b1345fe", + "url": "https://api.github.com/repos/Yoast/PHPUnit-Polyfills/zipball/19e6d5fb8aad31f731f774f9646a10c64a8843d2", + "reference": "19e6d5fb8aad31f731f774f9646a10c64a8843d2", "shasum": "" }, "require": { - "php": ">=5.6", - "phpunit/phpunit": "^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0" + "php": ">=7.0", + "phpunit/phpunit": "^6.4.4 || ^7.0 || ^8.0 || ^9.0 || ^11.0" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0.0", @@ -6820,7 +6820,7 @@ "security": "https://github.com/Yoast/PHPUnit-Polyfills/security/policy", "source": "https://github.com/Yoast/PHPUnit-Polyfills" }, - "time": "2024-09-06T22:38:28+00:00" + "time": "2024-09-07T00:24:25+00:00" } ], "aliases": [], diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index b3b8048..235d21a 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,212 +1,248 @@ parameters: ignoreErrors: - - message: "#^Method App\\\\Bootstrap\\\\AppManager\\:\\:__invoke\\(\\) return type with generic class Slim\\\\App does not specify its types\\: TContainerInterface$#" + message: '#^Method App\\Bootstrap\\AppManager\:\:__invoke\(\) return type with generic class Slim\\App does not specify its types\: TContainerInterface$#' + identifier: missingType.generics count: 1 path: app/src/Bootstrap/AppManager.php - - message: "#^PHPDoc tag @var for variable \\$configFiles has no value type specified in iterable type iterable\\.$#" - count: 1 - path: app/src/Bootstrap/BootManager.php - - - - message: "#^Method App\\\\Bootstrap\\\\ExceptionManager\\:\\:__construct\\(\\) has parameter \\$app with generic class Slim\\\\App but does not specify its types\\: TContainerInterface$#" + message: '#^Method App\\Bootstrap\\ExceptionManager\:\:__construct\(\) has parameter \$app with generic class Slim\\App but does not specify its types\: TContainerInterface$#' + identifier: missingType.generics count: 1 path: app/src/Bootstrap/ExceptionManager.php - - message: "#^Method App\\\\Bootstrap\\\\MiddlewareManager\\:\\:__construct\\(\\) has parameter \\$app with generic class Slim\\\\App but does not specify its types\\: TContainerInterface$#" + message: '#^Method App\\Bootstrap\\MiddlewareManager\:\:__construct\(\) has parameter \$app with generic class Slim\\App but does not specify its types\: TContainerInterface$#' + identifier: missingType.generics count: 1 path: app/src/Bootstrap/MiddlewareManager.php - - message: "#^Method App\\\\Bootstrap\\\\RouteManager\\:\\:__construct\\(\\) has parameter \\$app with generic class Slim\\\\App but does not specify its types\\: TContainerInterface$#" + message: '#^Method App\\Bootstrap\\RouteManager\:\:__construct\(\) has parameter \$app with generic class Slim\\App but does not specify its types\: TContainerInterface$#' + identifier: missingType.generics count: 1 path: app/src/Bootstrap/RouteManager.php - - message: "#^Method App\\\\Controllers\\\\DirectoryController\\:\\:__invoke\\(\\) throws checked exception Twig\\\\Error\\\\LoaderError but it's missing from the PHPDoc @throws tag\\.$#" + message: '#^Method App\\Controllers\\DirectoryController\:\:__invoke\(\) throws checked exception Twig\\Error\\LoaderError but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 2 path: app/src/Controllers/DirectoryController.php - - message: "#^Method App\\\\Controllers\\\\DirectoryController\\:\\:__invoke\\(\\) throws checked exception Twig\\\\Error\\\\RuntimeError but it's missing from the PHPDoc @throws tag\\.$#" + message: '#^Method App\\Controllers\\DirectoryController\:\:__invoke\(\) throws checked exception Twig\\Error\\RuntimeError but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 2 path: app/src/Controllers/DirectoryController.php - - message: "#^Method App\\\\Controllers\\\\DirectoryController\\:\\:__invoke\\(\\) throws checked exception Twig\\\\Error\\\\SyntaxError but it's missing from the PHPDoc @throws tag\\.$#" + message: '#^Method App\\Controllers\\DirectoryController\:\:__invoke\(\) throws checked exception Twig\\Error\\SyntaxError but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 2 path: app/src/Controllers/DirectoryController.php - - message: "#^Method App\\\\Controllers\\\\FileInfoController\\:\\:calculateHashes\\(\\) return type has no value type specified in iterable type array\\.$#" + message: '#^Method App\\Controllers\\FileInfoController\:\:calculateHashes\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: app/src/Controllers/FileInfoController.php - - message: "#^Method App\\\\Controllers\\\\SearchController\\:\\:__invoke\\(\\) throws checked exception Twig\\\\Error\\\\LoaderError but it's missing from the PHPDoc @throws tag\\.$#" + message: '#^Method App\\Controllers\\SearchController\:\:__invoke\(\) throws checked exception Twig\\Error\\LoaderError but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 2 path: app/src/Controllers/SearchController.php - - message: "#^Method App\\\\Controllers\\\\SearchController\\:\\:__invoke\\(\\) throws checked exception Twig\\\\Error\\\\RuntimeError but it's missing from the PHPDoc @throws tag\\.$#" + message: '#^Method App\\Controllers\\SearchController\:\:__invoke\(\) throws checked exception Twig\\Error\\RuntimeError but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 2 path: app/src/Controllers/SearchController.php - - message: "#^Method App\\\\Controllers\\\\SearchController\\:\\:__invoke\\(\\) throws checked exception Twig\\\\Error\\\\SyntaxError but it's missing from the PHPDoc @throws tag\\.$#" + message: '#^Method App\\Controllers\\SearchController\:\:__invoke\(\) throws checked exception Twig\\Error\\SyntaxError but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 2 path: app/src/Controllers/SearchController.php - - message: "#^Cannot access offset 'mtime' on array\\{0\\: int, 1\\: int, 2\\: int, 3\\: int, 4\\: int, 5\\: int, 6\\: int, 7\\: int, \\.\\.\\.\\}\\|false\\.$#" + message: '#^Cannot access offset ''mtime'' on array\{0\: int, 1\: int, 2\: int, 3\: int, 4\: int, 5\: int, 6\: int, 7\: int, \.\.\.\}\|false\.$#' + identifier: offsetAccess.nonOffsetAccessible count: 1 path: app/src/Controllers/ZipController.php - - message: "#^Method App\\\\Controllers\\\\ZipController\\:\\:generateFileName\\(\\) should return string but returns string\\|null\\.$#" + message: '#^Method App\\Controllers\\ZipController\:\:generateFileName\(\) should return string but returns string\|null\.$#' + identifier: return.type count: 1 path: app/src/Controllers/ZipController.php - - message: "#^Method App\\\\Exceptions\\\\ErrorHandler\\:\\:__invoke\\(\\) throws checked exception Twig\\\\Error\\\\LoaderError but it's missing from the PHPDoc @throws tag\\.$#" + message: '#^Method App\\Exceptions\\ErrorHandler\:\:__invoke\(\) throws checked exception Twig\\Error\\LoaderError but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 1 path: app/src/Exceptions/ErrorHandler.php - - message: "#^Method App\\\\Exceptions\\\\ErrorHandler\\:\\:__invoke\\(\\) throws checked exception Twig\\\\Error\\\\RuntimeError but it's missing from the PHPDoc @throws tag\\.$#" + message: '#^Method App\\Exceptions\\ErrorHandler\:\:__invoke\(\) throws checked exception Twig\\Error\\RuntimeError but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 1 path: app/src/Exceptions/ErrorHandler.php - - message: "#^Method App\\\\Exceptions\\\\ErrorHandler\\:\\:__invoke\\(\\) throws checked exception Twig\\\\Error\\\\SyntaxError but it's missing from the PHPDoc @throws tag\\.$#" + message: '#^Method App\\Exceptions\\ErrorHandler\:\:__invoke\(\) throws checked exception Twig\\Error\\SyntaxError but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 1 path: app/src/Exceptions/ErrorHandler.php - - message: "#^Method App\\\\Factories\\\\TranslationFactory\\:\\:translations\\(\\) return type has no value type specified in iterable type array\\.$#" + message: '#^Method App\\Factories\\TranslationFactory\:\:translations\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: app/src/Factories/TranslationFactory.php - - message: "#^Method App\\\\Factories\\\\TwigFactory\\:\\:__invoke\\(\\) throws checked exception ReflectionException but it's missing from the PHPDoc @throws tag\\.$#" + message: '#^Method App\\Factories\\TwigFactory\:\:__invoke\(\) throws checked exception ReflectionException but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 1 path: app/src/Factories/TwigFactory.php - - message: "#^Method App\\\\Middlewares\\\\PruneCacheMiddleware\\:\\:winsLottery\\(\\) throws checked exception Random\\\\RandomException but it's missing from the PHPDoc @throws tag\\.$#" + message: '#^Method App\\Middlewares\\PruneCacheMiddleware\:\:winsLottery\(\) throws checked exception Random\\RandomException but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 1 path: app/src/Middlewares/PruneCacheMiddleware.php - - message: "#^Parameter \\#1 \\$separator of function explode expects non\\-empty\\-string, string given\\.$#" + message: '#^Parameter \#1 \$separator of function explode expects non\-empty\-string, string given\.$#' + identifier: argument.type count: 1 path: app/src/Support/Str.php - - message: "#^Unable to resolve the template type TMakeKey in call to method static method Tightenco\\\\Collect\\\\Support\\\\Collection\\<\\(int\\|string\\),mixed\\>\\:\\:make\\(\\)$#" + message: '#^Unable to resolve the template type TMakeKey in call to method static method Tightenco\\Collect\\Support\\Collection\<\(int\|string\),mixed\>\:\:make\(\)$#' + identifier: argument.templateType count: 1 path: app/src/ViewFunctions/Asset.php - - message: "#^Unable to resolve the template type TMakeValue in call to method static method Tightenco\\\\Collect\\\\Support\\\\Collection\\<\\(int\\|string\\),mixed\\>\\:\\:make\\(\\)$#" + message: '#^Unable to resolve the template type TMakeValue in call to method static method Tightenco\\Collect\\Support\\Collection\<\(int\|string\),mixed\>\:\:make\(\)$#' + identifier: argument.templateType count: 1 path: app/src/ViewFunctions/Asset.php - - message: "#^Parameter \\#1 \\$separator of function explode expects non\\-empty\\-string, string given\\.$#" + message: '#^Method App\\ViewFunctions\\Breadcrumbs\:\:__invoke\(\) should return Tightenco\\Collect\\Support\\Collection\ but returns Tightenco\\Collect\\Support\\Collection\<\*NEVER\*, non\-falsy\-string\>\.$#' + identifier: return.type count: 1 path: app/src/ViewFunctions/Breadcrumbs.php - - message: "#^Dead catch \\- RuntimeException is never thrown in the try block\\.$#" + message: '#^Parameter \#1 \$separator of function explode expects non\-empty\-string, string given\.$#' + identifier: argument.type + count: 1 + path: app/src/ViewFunctions/Breadcrumbs.php + + - + message: '#^Dead catch \- RuntimeException is never thrown in the try block\.$#' + identifier: catch.neverThrown count: 1 path: app/src/ViewFunctions/ModifiedTime.php - - message: "#^Dead catch \\- RuntimeException is never thrown in the try block\\.$#" + message: '#^Method App\\ViewFunctions\\SizeForHumans\:\:__invoke\(\) throws checked exception DivisionByZeroError but it''s missing from the PHPDoc @throws tag\.$#' + identifier: missingType.checkedException count: 1 path: app/src/ViewFunctions/SizeForHumans.php - - message: "#^Method App\\\\ViewFunctions\\\\SizeForHumans\\:\\:__invoke\\(\\) throws checked exception DivisionByZeroError but it's missing from the PHPDoc @throws tag\\.$#" - count: 1 - path: app/src/ViewFunctions/SizeForHumans.php - - - - message: "#^Method Tests\\\\Controllers\\\\DirectoryControllerTest\\:\\:configOptions\\(\\) return type has no value type specified in iterable type array\\.$#" + message: '#^Method Tests\\Controllers\\DirectoryControllerTest\:\:configOptions\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/Controllers/DirectoryControllerTest.php - - message: "#^Parameter \\#1 \\$finfo of function finfo_buffer expects finfo, finfo\\|false given\\.$#" + message: '#^Parameter \#1 \$finfo of function finfo_buffer expects finfo, finfo\|false given\.$#' + identifier: argument.type count: 1 path: tests/Exceptions/ErrorHandlerTest.php - - message: "#^Method Tests\\\\Factories\\\\CacheFactoryTest\\:\\:cacheAdapters\\(\\) return type has no value type specified in iterable type array\\.$#" + message: '#^Method Tests\\Factories\\CacheFactoryTest\:\:cacheAdapters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/Factories/CacheFactoryTest.php - - message: "#^Parameter \\#1 \\$expected of method PHPUnit\\\\Framework\\\\Assert\\:\\:assertInstanceOf\\(\\) expects class\\-string\\, string given\\.$#" + message: '#^Parameter \#1 \$expected of method PHPUnit\\Framework\\Assert\:\:assertInstanceOf\(\) expects class\-string\, string given\.$#' + identifier: argument.type count: 1 path: tests/Factories/CacheFactoryTest.php - - message: "#^Method Tests\\\\Factories\\\\FinderFactoryTest\\:\\:getFilesArray\\(\\) return type has no value type specified in iterable type array\\.$#" + message: '#^Method Tests\\Factories\\FinderFactoryTest\:\:getFilesArray\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/Factories/FinderFactoryTest.php - - message: "#^Cannot call method getCallable\\(\\) on Twig\\\\TwigFunction\\|null\\.$#" + message: '#^Cannot call method getCallable\(\) on Twig\\TwigFunction\|null\.$#' + identifier: method.nonObject count: 11 path: tests/Factories/TwigFactoryTest.php - - message: "#^Method Tests\\\\HiddenFilesTest\\:\\:hiddenFilesProvider\\(\\) return type has no value type specified in iterable type array\\.$#" + message: '#^Method Tests\\HiddenFilesTest\:\:hiddenFilesProvider\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/HiddenFilesTest.php - - message: "#^Method Tests\\\\HiddenFilesTest\\:\\:test_it_creates_a_collection_of_hidden_files\\(\\) has parameter \\$expected with no value type specified in iterable type array\\.$#" + message: '#^Method Tests\\HiddenFilesTest\:\:test_it_creates_a_collection_of_hidden_files\(\) has parameter \$expected with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/HiddenFilesTest.php - - message: "#^Method Tests\\\\HiddenFilesTest\\:\\:test_it_creates_a_collection_of_hidden_files\\(\\) has parameter \\$hiddenFilesArray with no value type specified in iterable type array\\.$#" + message: '#^Method Tests\\HiddenFilesTest\:\:test_it_creates_a_collection_of_hidden_files\(\) has parameter \$hiddenFilesArray with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/HiddenFilesTest.php - - message: "#^Method Tests\\\\Middlewares\\\\PruneCacheMiddlewareTest\\:\\:nonPruneableCacheAdapters\\(\\) return type has no value type specified in iterable type array\\.$#" + message: '#^Method Tests\\Middlewares\\PruneCacheMiddlewareTest\:\:nonPruneableCacheAdapters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/Middlewares/PruneCacheMiddlewareTest.php - - message: "#^Method Tests\\\\Middlewares\\\\PruneCacheMiddlewareTest\\:\\:pruneableCacheAdapters\\(\\) return type has no value type specified in iterable type array\\.$#" + message: '#^Method Tests\\Middlewares\\PruneCacheMiddlewareTest\:\:pruneableCacheAdapters\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue count: 1 path: tests/Middlewares/PruneCacheMiddlewareTest.php - - message: "#^Parameter \\#1 \\$className of method PHPUnit\\\\Framework\\\\TestCase\\:\\:getMockBuilder\\(\\) expects class\\-string\\, string given\\.$#" + message: '#^Parameter \#1 \$className of method PHPUnit\\Framework\\TestCase\:\:getMockBuilder\(\) expects class\-string\, string given\.$#' + identifier: argument.type count: 1 path: tests/Middlewares/PruneCacheMiddlewareTest.php - - message: "#^Parameter \\#1 \\$originalClassName of method PHPUnit\\\\Framework\\\\TestCase\\:\\:createMock\\(\\) expects class\\-string\\, string given\\.$#" + message: '#^Parameter \#1 \$originalClassName of method PHPUnit\\Framework\\TestCase\:\:createMock\(\) expects class\-string\, string given\.$#' + identifier: argument.type count: 1 path: tests/Middlewares/PruneCacheMiddlewareTest.php - - message: "#^Unable to resolve the template type RealInstanceType in call to method PHPUnit\\\\Framework\\\\TestCase\\:\\:createMock\\(\\)$#" + message: '#^Unable to resolve the template type RealInstanceType in call to method PHPUnit\\Framework\\TestCase\:\:createMock\(\)$#' + identifier: argument.templateType count: 1 path: tests/Middlewares/PruneCacheMiddlewareTest.php - - message: "#^Unable to resolve the template type RealInstanceType in call to method PHPUnit\\\\Framework\\\\TestCase\\:\\:getMockBuilder\\(\\)$#" + message: '#^Unable to resolve the template type RealInstanceType in call to method PHPUnit\\Framework\\TestCase\:\:getMockBuilder\(\)$#' + identifier: argument.templateType count: 1 path: tests/Middlewares/PruneCacheMiddlewareTest.php