forked from fa/breadcrumb-the-shire
chore: upgrade PHPStan to 2.x and add unused-public dead code detection
- Upgrade phpstan/phpstan 1.12 → 2.1 - Add tomasvotruba/unused-public 2.2 for automatic dead code detection - Generate baseline (486 existing findings) to keep CI green - Remove stale @phpstan-ignore annotation in login page (ternary.alwaysFalse) - New code is fully checked against PHPStan 2 + unused-public rules Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -22,9 +22,10 @@
|
|||||||
"mintyphp/tools": "*",
|
"mintyphp/tools": "*",
|
||||||
"mintyphp/debugger": "*",
|
"mintyphp/debugger": "*",
|
||||||
"phpunit/phpunit": "*",
|
"phpunit/phpunit": "*",
|
||||||
"phpstan/phpstan": "^1.9",
|
"phpstan/phpstan": "^2.1",
|
||||||
"icanhazstring/composer-unused": "^0.9.6",
|
"icanhazstring/composer-unused": "^0.9.6",
|
||||||
"friendsofphp/php-cs-fixer": "^3.66"
|
"friendsofphp/php-cs-fixer": "^3.66",
|
||||||
|
"tomasvotruba/unused-public": "^2.2"
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
|||||||
104
composer.lock
generated
104
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "0926942d029bad48009daddfa3a97395",
|
"content-hash": "0191d3acf35a8d4f2200f7efb11283a6",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "bacon/bacon-qr-code",
|
"name": "bacon/bacon-qr-code",
|
||||||
@@ -2708,20 +2708,15 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpstan/phpstan",
|
"name": "phpstan/phpstan",
|
||||||
"version": "1.12.19",
|
"version": "2.1.47",
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/phpstan/phpstan.git",
|
|
||||||
"reference": "c42ba9bab7a940ed00092ecb1c77bad98896d789"
|
|
||||||
},
|
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/c42ba9bab7a940ed00092ecb1c77bad98896d789",
|
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/79015445d8bd79e62b29140f12e5bfced1dcca65",
|
||||||
"reference": "c42ba9bab7a940ed00092ecb1c77bad98896d789",
|
"reference": "79015445d8bd79e62b29140f12e5bfced1dcca65",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.2|^8.0"
|
"php": "^7.4|^8.0"
|
||||||
},
|
},
|
||||||
"conflict": {
|
"conflict": {
|
||||||
"phpstan/phpstan-shim": "*"
|
"phpstan/phpstan-shim": "*"
|
||||||
@@ -2762,7 +2757,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2025-02-19T15:42:21+00:00"
|
"time": "2026-04-13T15:49:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-code-coverage",
|
"name": "phpunit/php-code-coverage",
|
||||||
@@ -5298,16 +5293,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-ctype",
|
"name": "symfony/polyfill-ctype",
|
||||||
"version": "v1.33.0",
|
"version": "v1.34.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||||
"reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
|
"reference": "141046a8f9477948ff284fa65be2095baafb94f2"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
|
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2",
|
||||||
"reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
|
"reference": "141046a8f9477948ff284fa65be2095baafb94f2",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -5357,7 +5352,7 @@
|
|||||||
"portable"
|
"portable"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0"
|
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.34.0"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -5377,7 +5372,7 @@
|
|||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2024-09-09T11:45:10+00:00"
|
"time": "2026-04-10T16:19:22+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-intl-grapheme",
|
"name": "symfony/polyfill-intl-grapheme",
|
||||||
@@ -6575,17 +6570,74 @@
|
|||||||
"time": "2024-03-03T12:36:25+00:00"
|
"time": "2024-03-03T12:36:25+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "webmozart/assert",
|
"name": "tomasvotruba/unused-public",
|
||||||
"version": "2.1.5",
|
"version": "2.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/webmozarts/assert.git",
|
"url": "https://github.com/TomasVotruba/unused-public.git",
|
||||||
"reference": "79155f94852fa27e2f73b459f6503f5e87e2c188"
|
"reference": "ec82a9a1e3216eb5db174430a740ad8d9ac1dfc2"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/webmozarts/assert/zipball/79155f94852fa27e2f73b459f6503f5e87e2c188",
|
"url": "https://api.github.com/repos/TomasVotruba/unused-public/zipball/ec82a9a1e3216eb5db174430a740ad8d9ac1dfc2",
|
||||||
"reference": "79155f94852fa27e2f73b459f6503f5e87e2c188",
|
"reference": "ec82a9a1e3216eb5db174430a740ad8d9ac1dfc2",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.4 || ^8.0",
|
||||||
|
"phpstan/phpstan": "^2.1.33",
|
||||||
|
"webmozart/assert": "^1.11|^2.0"
|
||||||
|
},
|
||||||
|
"type": "phpstan-extension",
|
||||||
|
"extra": {
|
||||||
|
"phpstan": {
|
||||||
|
"includes": [
|
||||||
|
"config/extension.neon"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"TomasVotruba\\UnusedPublic\\": "src"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"description": "Detect unused public properties, constants and methods in your code",
|
||||||
|
"keywords": [
|
||||||
|
"phpstan-extension",
|
||||||
|
"static analysis"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/TomasVotruba/unused-public/issues",
|
||||||
|
"source": "https://github.com/TomasVotruba/unused-public/tree/2.2.0"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://www.paypal.me/rectorphp",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/tomasvotruba",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2026-01-07T22:23:06+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "webmozart/assert",
|
||||||
|
"version": "2.3.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/webmozarts/assert.git",
|
||||||
|
"reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/webmozarts/assert/zipball/eb0d790f735ba6cff25c683a85a1da0eadeff9e4",
|
||||||
|
"reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -6632,9 +6684,9 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/webmozarts/assert/issues",
|
"issues": "https://github.com/webmozarts/assert/issues",
|
||||||
"source": "https://github.com/webmozarts/assert/tree/2.1.5"
|
"source": "https://github.com/webmozarts/assert/tree/2.3.0"
|
||||||
},
|
},
|
||||||
"time": "2026-02-18T14:09:36+00:00"
|
"time": "2026-04-11T10:33:05+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "webmozart/glob",
|
"name": "webmozart/glob",
|
||||||
@@ -6695,5 +6747,5 @@
|
|||||||
"php": "^8.5"
|
"php": "^8.5"
|
||||||
},
|
},
|
||||||
"platform-dev": {},
|
"platform-dev": {},
|
||||||
"plugin-api-version": "2.9.0"
|
"plugin-api-version": "2.6.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,7 +119,6 @@ $resolveLoginCandidates = static function (string $inputEmail) use ($userReadRep
|
|||||||
if ($tenantSlug === '') {
|
if ($tenantSlug === '') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/** @phpstan-ignore ternary.alwaysFalse ($discovery is set to true inside the !$tenants branch that also reassigns $tenants) */
|
|
||||||
$methods = $discovery
|
$methods = $discovery
|
||||||
? ($discoveryMethodsByTenantId[$tenantId] ?? ['local' => false, 'microsoft' => false, 'microsoft_reason' => '', 'ldap' => false, 'ldap_reason' => ''])
|
? ($discoveryMethodsByTenantId[$tenantId] ?? ['local' => false, 'microsoft' => false, 'microsoft_reason' => '', 'ldap' => false, 'ldap_reason' => ''])
|
||||||
: $tenantSsoService->resolveTenantLoginMethods($tenantId);
|
: $tenantSsoService->resolveTenantLoginMethods($tenantId);
|
||||||
|
|||||||
2719
phpstan-baseline.neon
Normal file
2719
phpstan-baseline.neon
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,7 @@
|
|||||||
|
includes:
|
||||||
|
- vendor/tomasvotruba/unused-public/config/extension.neon
|
||||||
|
- phpstan-baseline.neon
|
||||||
|
|
||||||
parameters:
|
parameters:
|
||||||
level: 5
|
level: 5
|
||||||
phpVersion: 80499
|
phpVersion: 80499
|
||||||
|
|||||||
Reference in New Issue
Block a user