From 3866818d1d30f93194a2b28884068c13413469cd Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Sat, 8 Aug 2026 08:20:39 +0300 Subject: [PATCH 1/2] Add Composer Dependency Analyser --- ...ecker.yml => composer-dependency-analyser.yml} | 13 ++++++------- composer-dependency-analyser.php | 15 +++++++++++++++ composer.json | 4 +++- docs/internals.md | 6 +++--- 4 files changed, 27 insertions(+), 11 deletions(-) rename .github/workflows/{composer-require-checker.yml => composer-dependency-analyser.yml} (54%) 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 54% rename from .github/workflows/composer-require-checker.yml rename to .github/workflows/composer-dependency-analyser.yml index f1e1b0538..3fed6a399 100644 --- a/.github/workflows/composer-require-checker.yml +++ b/.github/workflows/composer-dependency-analyser.yml @@ -1,12 +1,13 @@ -name: Composer require checker +name: composer dependency analyser on: pull_request: paths: &paths - 'src/**' - - '.github/workflows/composer-require-checker.yml' + - 'tests/**' + - '.github/workflows/composer-dependency-analyser.yml' - 'composer.json' - - 'composer-require-checker.json' + - 'composer-dependency-analyser.php' push: branches: ['master'] paths: *paths @@ -19,10 +20,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: php: >- ['8.1', '8.2', '8.3', '8.4', '8.5'] - required-packages: >- - ['db'] diff --git a/composer-dependency-analyser.php b/composer-dependency-analyser.php new file mode 100644 index 000000000..f67c530dd --- /dev/null +++ b/composer-dependency-analyser.php @@ -0,0 +1,15 @@ +disableComposerAutoloadPathScan() + ->setFileExtensions(['php']) + ->addPathToScan(__DIR__ . '/src', isDev: false) + ->addPathToScan(__DIR__ . '/tests', isDev: true) + // `ext-pdo_pgsql` provides no PHP-visible symbols of its own (only the "pgsql:" PDO DSN driver), + // so static analysis can never detect its usage even though the whole package depends on it. + ->ignoreErrorsOnExtension('ext-pdo_pgsql', [ErrorType::UNUSED_DEPENDENCY]); diff --git a/composer.json b/composer.json index c3a6c82f3..3b3c81ad6 100644 --- a/composer.json +++ b/composer.json @@ -39,9 +39,10 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.3", "friendsofphp/php-cs-fixer": "^3.89.1", - "maglnet/composer-require-checker": "^4.7.1", "phpunit/phpunit": "^10.5.45", + "psr/log": "^3.0", "rector/rector": "^2.0.10", + "shipmonk/composer-dependency-analyser": "^1.8", "spatie/phpunit-watcher": "^1.24", "vlucas/phpdotenv": "^5.6.1", "yiisoft/psr-dummy-provider": "^1.0", @@ -78,6 +79,7 @@ } }, "scripts": { + "dependency-analyser": "composer-dependency-analyser", "test": "phpunit --testdox --no-interaction", "test-watch": "phpunit-watcher watch" } diff --git a/docs/internals.md b/docs/internals.md index 1bdb00aeb..eaca18575 100644 --- a/docs/internals.md +++ b/docs/internals.md @@ -78,9 +78,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 9e80c692727cd578fd5998291c13279b6795bf99 Mon Sep 17 00:00:00 2001 From: Sergei Predvoditelev Date: Sat, 8 Aug 2026 20:22:33 +0300 Subject: [PATCH 2/2] fix --- tests/Provider/CommandPdoProvider.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Provider/CommandPdoProvider.php b/tests/Provider/CommandPdoProvider.php index 41164f9ef..2fa63d746 100644 --- a/tests/Provider/CommandPdoProvider.php +++ b/tests/Provider/CommandPdoProvider.php @@ -4,7 +4,7 @@ namespace Yiisoft\Db\Pgsql\Tests\Provider; -final class CommandPdoProvider extends \Yiisoft\Db\Tests\Provider\CommandPDOProvider +final class CommandPdoProvider extends \Yiisoft\Db\Tests\Provider\CommandPdoProvider { public static function bindParam(): array {