From c5b2a195d8550ce8984334f0c793eb67ff773789 Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Sat, 8 Aug 2026 08:21:13 +0300 Subject: [PATCH 1/2] Add Composer Dependency Analyser --- ...hecker.yml => composer-dependency-analyser.yml} | 13 ++++++------- composer-dependency-analyser.php | 14 ++++++++++++++ composer.json | 6 +++++- docs/en/internals.md | 9 +++++++++ 4 files changed, 34 insertions(+), 8 deletions(-) rename .github/workflows/{composer-require-checker.yml => composer-dependency-analyser.yml} (55%) 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 55% rename from .github/workflows/composer-require-checker.yml rename to .github/workflows/composer-dependency-analyser.yml index f190e86..8ee11cd 100644 --- a/.github/workflows/composer-require-checker.yml +++ b/.github/workflows/composer-dependency-analyser.yml @@ -1,13 +1,14 @@ -name: Composer require checker +name: composer dependency analyser on: pull_request: paths: &paths - 'config/**' - 'src/**' - - 'config/**' - - '.github/workflows/composer-require-checker.yml' + - 'tests/**' + - '.github/workflows/composer-dependency-analyser.yml' - 'composer.json' + - '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'] diff --git a/composer-dependency-analyser.php b/composer-dependency-analyser.php new file mode 100644 index 0000000..fcf5c7f --- /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) + ->ignoreErrorsOnExtension('ext-sockets', [ErrorType::UNUSED_DEPENDENCY]); diff --git a/composer.json b/composer.json index 2990539..9e3ae4c 100644 --- a/composer.json +++ b/composer.json @@ -33,16 +33,19 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^3.95", "infection/infection": "^0.27.8||^0.29.0", - "maglnet/composer-require-checker": "^4.4", "phpbench/phpbench": "^1.4", "phpunit/phpunit": "^9.5", + "psr/container": "^2.0", + "psr/log": "^3.0", "rector/rector": "^2.5.5", "roave/infection-static-analysis-plugin": "^1.16", + "shipmonk/composer-dependency-analyser": "^1.8", "spatie/phpunit-watcher": "^1.23", "symfony/console": "^6.0", "symfony/process": "^6.0", "vimeo/psalm": "^5.26.1 || ^6.10.3", "yiisoft/code-style": "^1.0", + "yiisoft/injector": "^1.2", "yiisoft/test-support": "^3.0" }, "autoload": { @@ -75,6 +78,7 @@ }, "scripts": { "cs-fix": "php-cs-fixer fix", + "dependency-analyser": "composer-dependency-analyser", "psalm": "psalm", "rector": "rector" } diff --git a/docs/en/internals.md b/docs/en/internals.md index 5b7a3b4..8b96145 100644 --- a/docs/en/internals.md +++ b/docs/en/internals.md @@ -54,6 +54,15 @@ The code is statically analyzed with [Psalm](https://psalm.dev). To run static a make static-analyze v=81 ``` +### Dependencies + +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-dependency-analyser +``` + ### Unit tests ```bash From ff7dd8fdc8319dad0b78279bfd4e6e469961d97d Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Sun, 9 Aug 2026 17:48:26 +0300 Subject: [PATCH 2/2] fix --- composer-dependency-analyser.php | 3 +-- composer.json | 2 -- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/composer-dependency-analyser.php b/composer-dependency-analyser.php index fcf5c7f..896af33 100644 --- a/composer-dependency-analyser.php +++ b/composer-dependency-analyser.php @@ -10,5 +10,4 @@ ->setFileExtensions(['php']) ->addPathToScan(__DIR__ . '/config', isDev: false) ->addPathToScan(__DIR__ . '/src', isDev: false) - ->addPathToScan(__DIR__ . '/tests', isDev: true) - ->ignoreErrorsOnExtension('ext-sockets', [ErrorType::UNUSED_DEPENDENCY]); + ->addPathToScan(__DIR__ . '/tests', isDev: true); diff --git a/composer.json b/composer.json index 9e3ae4c..aa7c6c3 100644 --- a/composer.json +++ b/composer.json @@ -24,9 +24,7 @@ "require": { "php": "^8.1", "ext-json": "*", - "ext-sockets": "*", "php-amqplib/php-amqplib": "^3.1.0", - "yiisoft/factory": "^1.0", "yiisoft/friendly-exception": "^1.0", "yiisoft/queue": "dev-master" },