From 2ea082f2c7dc9fe3e453fc3634cda585bea0db84 Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Fri, 7 Aug 2026 10:27:14 +0300 Subject: [PATCH 1/3] Replace Composer Require Checker to Composer Dependency Analyser --- ...hecker.yml => composer-dependency-analyser.yml} | 12 +++++------- composer-dependency-analyser.php | 14 ++++++++++++++ composer-require-checker.json | 7 ------- composer.json | 3 ++- docs/internals.md | 6 +++--- 5 files changed, 24 insertions(+), 18 deletions(-) rename .github/workflows/{composer-require-checker.yml => composer-dependency-analyser.yml} (57%) create mode 100644 composer-dependency-analyser.php delete mode 100644 composer-require-checker.json diff --git a/.github/workflows/composer-require-checker.yml b/.github/workflows/composer-dependency-analyser.yml similarity index 57% rename from .github/workflows/composer-require-checker.yml rename to .github/workflows/composer-dependency-analyser.yml index eff6bd1..85ad2ca 100644 --- a/.github/workflows/composer-require-checker.yml +++ b/.github/workflows/composer-dependency-analyser.yml @@ -1,14 +1,14 @@ -name: Composer require checker +name: composer dependency analyser on: pull_request: paths: &paths - - '.github/workflows/composer-require-checker.yml' + - '.github/workflows/composer-dependency-analyser.yml' - 'config/**' - 'src/**' - 'tests/**' - 'composer.json' - - 'composer-require-checker.json' + - 'composer-dependency-analyser.php' push: branches: ['master'] paths: *paths @@ -21,10 +21,8 @@ concurrency: cancel-in-progress: true jobs: - composer-require-checker: - uses: yiisoft/actions/.github/workflows/composer-require-checker.yml@master + composer-dependency-analyser: + uses: yiisoft/actions/.github/workflows/composer-dependency-analyser.yml@master with: - os: >- - ['ubuntu-latest'] php: >- ['8.1', '8.2', '8.3', '8.4', '8.5'] diff --git a/composer-dependency-analyser.php b/composer-dependency-analyser.php new file mode 100644 index 0000000..9493909 --- /dev/null +++ b/composer-dependency-analyser.php @@ -0,0 +1,14 @@ +disableComposerAutoloadPathScan() + ->setFileExtensions(['php']) + ->addPathToScan(__DIR__ . '/config', isDev: false) + ->addPathToScan(__DIR__ . '/src', isDev: false) + ->addPathToScan(__DIR__ . '/tests', isDev: true) + ->ignoreErrorsOnPackages(['jetbrains/phpstorm-attributes', 'yiisoft/yii-debug'], [ErrorType::DEV_DEPENDENCY_IN_PROD]); diff --git a/composer-require-checker.json b/composer-require-checker.json deleted file mode 100644 index ce8fc2f..0000000 --- a/composer-require-checker.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "symbol-whitelist" : [ - "Yiisoft\\Yii\\Debug\\Collector\\CollectorTrait", - "Yiisoft\\Yii\\Debug\\Collector\\SummaryCollectorInterface", - "JetBrains\\PhpStorm\\Language" - ] -} diff --git a/composer.json b/composer.json index 8a2b26e..2c830b4 100644 --- a/composer.json +++ b/composer.json @@ -38,11 +38,11 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^3.92.5", "jetbrains/phpstorm-attributes": "^1.2", - "maglnet/composer-require-checker": "^4.7.1", "nyholm/psr7": "^1.8.2", "phpunit/phpunit": "^10.5.60", "rector/rector": "^2.3.0", "roave/infection-static-analysis-plugin": "^1.35", + "shipmonk/composer-dependency-analyser": "^1.8.4", "spatie/phpunit-watcher": "^1.24.4", "vimeo/psalm": "^5.26.1 || ^6.16.1", "yiisoft/yii-debug": "dev-master" @@ -69,6 +69,7 @@ "test": "phpunit", "test-watch": "phpunit-watcher watch", "cs-fix": "php-cs-fixer fix", + "dependency-analyser": "composer-dependency-analyser", "rector": "rector", "psalm": "psalm --no-cache" }, diff --git a/docs/internals.md b/docs/internals.md index 0a0a1cd..b77907c 100644 --- a/docs/internals.md +++ b/docs/internals.md @@ -36,9 +36,9 @@ use either newest or any specific version of PHP: ## Dependencies -This package uses [composer-require-checker](https://github.com/maglnet/ComposerRequireChecker) to check if all -dependencies are correctly defined in `composer.json`. To run the checker, execute the following command: +Use [Composer Dependency Analyser](https://github.com/shipmonk-rnd/composer-dependency-analyser) to detect unknown, +shadow, and unused [Composer](https://getcomposer.org) dependencies: ```shell -./vendor/bin/composer-require-checker +./vendor/bin/composer-dependency-analyser ``` From 02d030482e1dee0fd21165f26c0bb6bb890a395c Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Fri, 7 Aug 2026 10:35:06 +0300 Subject: [PATCH 2/3] fix --- composer-dependency-analyser.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer-dependency-analyser.php b/composer-dependency-analyser.php index 9493909..6dd4f43 100644 --- a/composer-dependency-analyser.php +++ b/composer-dependency-analyser.php @@ -11,4 +11,5 @@ ->addPathToScan(__DIR__ . '/config', isDev: false) ->addPathToScan(__DIR__ . '/src', isDev: false) ->addPathToScan(__DIR__ . '/tests', isDev: true) - ->ignoreErrorsOnPackages(['jetbrains/phpstorm-attributes', 'yiisoft/yii-debug'], [ErrorType::DEV_DEPENDENCY_IN_PROD]); + ->ignoreErrorsOnPackages(['jetbrains/phpstorm-attributes', 'yiisoft/yii-debug'], [ErrorType::DEV_DEPENDENCY_IN_PROD]) + ->ignoreUnknownClasses(['SensitiveParameter']); From 991968ed3257c1067933739d3efff26c3d1fae57 Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Fri, 7 Aug 2026 10:36:42 +0300 Subject: [PATCH 3/3] fix --- composer-dependency-analyser.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/composer-dependency-analyser.php b/composer-dependency-analyser.php index 6dd4f43..5a9df8e 100644 --- a/composer-dependency-analyser.php +++ b/composer-dependency-analyser.php @@ -5,11 +5,16 @@ use ShipMonk\ComposerDependencyAnalyser\Config\Configuration; use ShipMonk\ComposerDependencyAnalyser\Config\ErrorType; -return (new Configuration()) +$config = (new Configuration()) ->disableComposerAutoloadPathScan() ->setFileExtensions(['php']) ->addPathToScan(__DIR__ . '/config', isDev: false) ->addPathToScan(__DIR__ . '/src', isDev: false) ->addPathToScan(__DIR__ . '/tests', isDev: true) - ->ignoreErrorsOnPackages(['jetbrains/phpstorm-attributes', 'yiisoft/yii-debug'], [ErrorType::DEV_DEPENDENCY_IN_PROD]) - ->ignoreUnknownClasses(['SensitiveParameter']); + ->ignoreErrorsOnPackages(['jetbrains/phpstorm-attributes', 'yiisoft/yii-debug'], [ErrorType::DEV_DEPENDENCY_IN_PROD]); + +if (PHP_VERSION_ID < 80200) { + $config->ignoreUnknownClasses(['SensitiveParameter']); +} + +return $config;