From bbfd5b907bc3f4f8e991c8b5a78a2442e8f6146c Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Sat, 8 Aug 2026 08:21:14 +0300 Subject: [PATCH] Add Composer Dependency Analyser --- ...er.yml => composer-dependency-analyser.yml} | 11 +++++------ composer-dependency-analyser.php | 18 ++++++++++++++++++ composer.json | 5 +++-- docs/internals.md | 6 +++--- 4 files changed, 29 insertions(+), 11 deletions(-) rename .github/workflows/{composer-require-checker.yml => composer-dependency-analyser.yml} (59%) create mode 100644 composer-dependency-analyser.php diff --git a/.github/workflows/composer-require-checker.yml b/.github/workflows/composer-dependency-analyser.yml similarity index 59% rename from .github/workflows/composer-require-checker.yml rename to .github/workflows/composer-dependency-analyser.yml index 38ada11..4b1ca3b 100644 --- a/.github/workflows/composer-require-checker.yml +++ b/.github/workflows/composer-dependency-analyser.yml @@ -1,4 +1,4 @@ -name: Composer require checker +name: composer dependency analyser on: pull_request: @@ -6,8 +6,9 @@ on: - 'migrations/**' - 'src/**' - 'tests/**' + - '.github/workflows/composer-dependency-analyser.yml' - 'composer.json' - - '.github/workflows/composer-require-checker.yml' + - 'composer-dependency-analyser.php' push: branches: ['master'] paths: *paths @@ -20,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..e8b8da6 --- /dev/null +++ b/composer-dependency-analyser.php @@ -0,0 +1,18 @@ +disableComposerAutoloadPathScan() + ->setFileExtensions(['php']) + ->addPathToScan(__DIR__ . '/src', isDev: false) + ->addPathToScan(__DIR__ . '/migrations', isDev: false) + ->addPathToScan(__DIR__ . '/tests', isDev: true) + // yiisoft/db-migration is an optional integration (see composer.json "suggest"), not a hard dependency. + ->ignoreUnknownClasses([ + 'Yiisoft\Db\Migration\MigrationBuilder', + 'Yiisoft\Db\Migration\RevertibleMigrationInterface', + 'Yiisoft\Db\Migration\TransactionalMigrationInterface', + ]); diff --git a/composer.json b/composer.json index 0bb2fbf..1331659 100644 --- a/composer.json +++ b/composer.json @@ -39,10 +39,10 @@ }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.95", - "maglnet/composer-require-checker": "^4.7", "phpunit/phpunit": "^10.5", "rector/rector": "^2.0.3", "roave/infection-static-analysis-plugin": "^1.34", + "shipmonk/composer-dependency-analyser": "^1.8", "spatie/phpunit-watcher": "^1.23", "vimeo/psalm": "^5.26.1 || ^6.16.1", "yiisoft/cache": "^3.2", @@ -82,6 +82,7 @@ "test": "phpunit --testdox", "test-watch": "phpunit-watcher watch", "rector": "rector", - "cs-fix": "php-cs-fixer fix" + "cs-fix": "php-cs-fixer fix", + "dependency-analyser": "composer-dependency-analyser" } } diff --git a/docs/internals.md b/docs/internals.md index 087a514..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 ```