diff --git a/.gitattributes b/.gitattributes index 20bba50a..8dd7881f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -11,3 +11,4 @@ /.laminas-ci.json export-ignore /composer.lock export-ignore /renovate.json export-ignore +/composer-dependency-analyser.php export-ignore diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 26c58025..445804db 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -6,6 +6,22 @@ on: branches: tags: +env: + default_php: 8.2 + jobs: ci: uses: laminas/workflow-continuous-integration/.github/workflows/continuous-integration.yml@1.x + + dep-analyser: + runs-on: ubuntu-latest + name: Run Dependency analysis + steps: + - uses: actions/checkout@v4.2.2 + - uses: shivammathur/setup-php@2.34.1 + with: + php-version: ${{ env.default_php }} + extensions: swoole + tools: composer + - uses: ramsey/composer-install@v3 + - run: composer dep-analysis \ No newline at end of file diff --git a/composer-dependency-analyser.php b/composer-dependency-analyser.php new file mode 100644 index 00000000..216f3fee --- /dev/null +++ b/composer-dependency-analyser.php @@ -0,0 +1,14 @@ +ignoreUnknownClasses([Override::class]) + ->ignoreUnknownFunctions(["inotify_add_watch", "inotify_init", "inotify_read"]) + //meta-package with no code; only declares requirement for PSR-7 implementation + ->ignoreErrorsOnPackage('psr/http-message-implementation', [ErrorType::UNUSED_DEPENDENCY]); diff --git a/composer.json b/composer.json index cc8baa19..762d039a 100644 --- a/composer.json +++ b/composer.json @@ -39,25 +39,26 @@ "ext-swoole": "^6.0", "ext-zlib": "*", "dflydev/fig-cookies": "^2.0.1 || ^3.0", - "laminas/laminas-cli": "^1.8", + "filp/whoops": "^2.18", "laminas/laminas-diactoros": "^2.25.2 || ^3.0", "laminas/laminas-httphandlerrunner": "^2.5", "mezzio/mezzio": "^3.15", "psr/container": "^1.1.2 || ^2.0.2", "psr/event-dispatcher": "^1.0", "psr/http-message": "^1.1 || ^2.0", - "psr/http-message-implementation": "^1.0 || ^2.0", + "psr/http-message-implementation": "^1.1 || ^2.0", "psr/http-server-handler": "^1.0.2", "psr/log": "^1.0 || ^2.0 || ^3.0", "symfony/console": "^5.3 || ^6.0.19 || ^7.0", "webmozart/assert": "^1.11" }, "require-dev": { - "filp/whoops": "^2.15.2", "laminas/laminas-coding-standard": "~3.1.0", "laminas/laminas-servicemanager": "^4.0", + "laminas/laminas-stdlib": "^3.20", "phpunit/phpunit": "^10.5", "psalm/plugin-phpunit": "^0.19.5", + "shipmonk/composer-dependency-analyser": "^1.8", "swoole/ide-helper": "^6.0", "vimeo/psalm": "^6.13" }, @@ -77,10 +78,12 @@ "scripts": { "check": [ "@cs-check", - "@test" + "@test", + "@dep-analysis" ], "cs-check": "phpcs", "cs-fix": "phpcbf", + "dep-analysis": "composer-dependency-analyser --disable-ext-analysis", "static-analysis": "psalm --shepherd --stats", "test": "phpunit --colors=always", "test-coverage": "phpunit --colors=always --coverage-clover clover.xml" diff --git a/composer.lock b/composer.lock index 2ae551a9..864b6210 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "efef9d23d401b4f677db2fe64c1cbb36", + "content-hash": "fa2ca64dc8f0635be25c8102a2be0eab", "packages": [ { "name": "dflydev/fig-cookies", @@ -125,91 +125,92 @@ "time": "2020-11-24T22:02:12+00:00" }, { - "name": "laminas/laminas-cli", - "version": "1.11.0", + "name": "filp/whoops", + "version": "2.18.4", "source": { "type": "git", - "url": "https://github.com/laminas/laminas-cli.git", - "reference": "159b48f896fb2502cb6618a95307b56a0f23e592" + "url": "https://github.com/filp/whoops.git", + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-cli/zipball/159b48f896fb2502cb6618a95307b56a0f23e592", - "reference": "159b48f896fb2502cb6618a95307b56a0f23e592", + "url": "https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d", + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d", "shasum": "" }, "require": { - "composer-runtime-api": "^2.0.0", - "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", - "psr/container": "^1.0 || ^2.0", - "symfony/console": "^6.0 || ^7.0", - "symfony/event-dispatcher": "^6.0 || ^7.0", - "webmozart/assert": "^1.10" - }, - "conflict": { - "amphp/amp": "<2.6.4" + "php": "^7.1 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" }, "require-dev": { - "laminas/laminas-coding-standard": "^3.0.1", - "laminas/laminas-mvc": "^3.8.0", - "laminas/laminas-servicemanager": "^3.23.0", - "mikey179/vfsstream": "2.0.x-dev", - "phpunit/phpunit": "^10.5.38", - "psalm/plugin-phpunit": "^0.19.0", - "vimeo/psalm": "^5.26.1" + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" }, - "bin": [ - "bin/laminas" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, "autoload": { "psr-4": { - "Laminas\\Cli\\": "src/" + "Whoops\\": "src/Whoops/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } ], - "description": "Command-line interface for Laminas projects", + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", "keywords": [ - "cli", - "command", - "console", - "laminas" + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" ], "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-cli/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/mezzio/laminas-cli/issues", - "rss": "https://github.com/mezzio/laminas-cli/releases.atom", - "source": "https://github.com/mezzio/laminas-cli" + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.18.4" }, "funding": [ { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" + "url": "https://github.com/denis-sokolov", + "type": "github" } ], - "time": "2024-11-22T12:39:15+00:00" + "time": "2025-08-08T12:00:00+00:00" }, { "name": "laminas/laminas-diactoros", - "version": "3.6.0", + "version": "3.8.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "b068eac123f21c0e592de41deeb7403b88e0a89f" + "reference": "60c182916b2749480895601649563970f3f12ec4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/b068eac123f21c0e592de41deeb7403b88e0a89f", - "reference": "b068eac123f21c0e592de41deeb7403b88e0a89f", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/60c182916b2749480895601649563970f3f12ec4", + "reference": "60c182916b2749480895601649563970f3f12ec4", "shasum": "" }, "require": { - "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", "psr/http-factory": "^1.1", "psr/http-message": "^1.1 || ^2.0" }, @@ -226,11 +227,11 @@ "ext-gd": "*", "ext-libxml": "*", "http-interop/http-factory-tests": "^2.2.0", - "laminas/laminas-coding-standard": "~3.0.0", + "laminas/laminas-coding-standard": "~3.1.0", "php-http/psr7-integration-tests": "^1.4.0", "phpunit/phpunit": "^10.5.36", - "psalm/plugin-phpunit": "^0.19.0", - "vimeo/psalm": "^5.26.1" + "psalm/plugin-phpunit": "^0.19.5", + "vimeo/psalm": "^6.13" }, "type": "library", "extra": { @@ -280,7 +281,7 @@ "type": "community_bridge" } ], - "time": "2025-05-05T16:03:34+00:00" + "time": "2025-10-12T15:31:36+00:00" }, { "name": "laminas/laminas-escaper", @@ -597,21 +598,21 @@ }, { "name": "mezzio/mezzio-router", - "version": "3.18.0", + "version": "3.19.0", "source": { "type": "git", "url": "https://github.com/mezzio/mezzio-router.git", - "reference": "75e9a3e636ee69f3a51006772cf29c00cb5da675" + "reference": "3df4363e70611ddf096db95c62df6aa98817872c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mezzio/mezzio-router/zipball/75e9a3e636ee69f3a51006772cf29c00cb5da675", - "reference": "75e9a3e636ee69f3a51006772cf29c00cb5da675", + "url": "https://api.github.com/repos/mezzio/mezzio-router/zipball/3df4363e70611ddf096db95c62df6aa98817872c", + "reference": "3df4363e70611ddf096db95c62df6aa98817872c", "shasum": "" }, "require": { "fig/http-message-util": "^1.1.5", - "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", "psr/container": "^1.1.2 || ^2.0", "psr/http-factory": "^1.0.2", "psr/http-message": "^1.0.1 || ^2.0.0", @@ -623,13 +624,13 @@ "zendframework/zend-expressive-router": "*" }, "require-dev": { - "laminas/laminas-coding-standard": "~2.5.0", - "laminas/laminas-diactoros": "^3.4.0", - "laminas/laminas-servicemanager": "^4.2.0", - "laminas/laminas-stratigility": "^4.0.2", - "phpunit/phpunit": "^10.5.36", + "laminas/laminas-coding-standard": "~3.1.0", + "laminas/laminas-diactoros": "^3.6.0", + "laminas/laminas-servicemanager": "^4.4.0", + "laminas/laminas-stratigility": "^4.2.0", + "phpunit/phpunit": "^11.5.42", "psalm/plugin-phpunit": "^0.19.0", - "vimeo/psalm": "^5.26.1" + "vimeo/psalm": "^6.13.1" }, "suggest": { "mezzio/mezzio-aurarouter": "^3.0 to use the Aura.Router routing adapter", @@ -675,33 +676,33 @@ "type": "community_bridge" } ], - "time": "2024-10-16T21:18:01+00:00" + "time": "2025-10-11T08:41:44+00:00" }, { "name": "mezzio/mezzio-template", - "version": "2.12.0", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/mezzio/mezzio-template.git", - "reference": "6a3c0211b8e4d403fefce39b65f7a7cd704635fd" + "reference": "ad72bb31036d0639a5c5a502af234217faf6932f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mezzio/mezzio-template/zipball/6a3c0211b8e4d403fefce39b65f7a7cd704635fd", - "reference": "6a3c0211b8e4d403fefce39b65f7a7cd704635fd", + "url": "https://api.github.com/repos/mezzio/mezzio-template/zipball/ad72bb31036d0639a5c5a502af234217faf6932f", + "reference": "ad72bb31036d0639a5c5a502af234217faf6932f", "shasum": "" }, "require": { - "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "conflict": { "zendframework/zend-expressive-template": "*" }, "require-dev": { "laminas/laminas-coding-standard": "~3.1.0", - "phpunit/phpunit": "^10.5.45", + "phpunit/phpunit": "^11.5.42", "psalm/plugin-phpunit": "^0.19.5", - "vimeo/psalm": "^6.10.0" + "vimeo/psalm": "^6.13.1" }, "suggest": { "mezzio/mezzio-laminasviewrenderer": "^2.0 to use the laminas-view PhpRenderer template renderer", @@ -739,7 +740,7 @@ "type": "community_bridge" } ], - "time": "2025-09-30T08:42:10+00:00" + "time": "2025-10-11T08:45:28+00:00" }, { "name": "psr/container", @@ -1280,166 +1281,6 @@ ], "time": "2024-09-25T14:21:43+00:00" }, - { - "name": "symfony/event-dispatcher", - "version": "v7.3.3", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", - "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", - "shasum": "" - }, - "require": { - "php": ">=8.2", - "symfony/event-dispatcher-contracts": "^2.5|^3" - }, - "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/service-contracts": "<2.5" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0|3.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0", - "symfony/dependency-injection": "^6.4|^7.0", - "symfony/error-handler": "^6.4|^7.0", - "symfony/expression-language": "^6.4|^7.0", - "symfony/http-foundation": "^6.4|^7.0", - "symfony/service-contracts": "^2.5|^3", - "symfony/stopwatch": "^6.4|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://github.com/nicolas-grekas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-08-13T11:49:31+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v3.6.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "59eb412e93815df44f05f342958efa9f46b1e586" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", - "reference": "59eb412e93815df44f05f342958efa9f46b1e586", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "psr/event-dispatcher": "^1" - }, - "type": "library", - "extra": { - "thanks": { - "url": "https://github.com/symfony/contracts", - "name": "symfony/contracts" - }, - "branch-alias": { - "dev-main": "3.6-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-25T14:21:43+00:00" - }, { "name": "symfony/polyfill-ctype", "version": "v1.33.0", @@ -3481,77 +3322,6 @@ ], "time": "2025-08-14T07:29:31+00:00" }, - { - "name": "filp/whoops", - "version": "2.18.4", - "source": { - "type": "git", - "url": "https://github.com/filp/whoops.git", - "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d", - "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0", - "psr/log": "^1.0.1 || ^2.0 || ^3.0" - }, - "require-dev": { - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3", - "symfony/var-dumper": "^4.0 || ^5.0" - }, - "suggest": { - "symfony/var-dumper": "Pretty print complex values better with var-dumper available", - "whoops/soap": "Formats errors as SOAP responses" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7-dev" - } - }, - "autoload": { - "psr-4": { - "Whoops\\": "src/Whoops/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Filipe Dobreira", - "homepage": "https://github.com/filp", - "role": "Developer" - } - ], - "description": "php error handling for cool kids", - "homepage": "https://filp.github.io/whoops/", - "keywords": [ - "error", - "exception", - "handling", - "library", - "throwable", - "whoops" - ], - "support": { - "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.18.4" - }, - "funding": [ - { - "url": "https://github.com/denis-sokolov", - "type": "github" - } - ], - "time": "2025-08-08T12:00:00+00:00" - }, { "name": "kelunik/certificate", "version": "v1.1.3", @@ -3750,30 +3520,30 @@ }, { "name": "laminas/laminas-stdlib", - "version": "3.20.0", + "version": "3.21.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "8974a1213be42c3e2f70b2c27b17f910291ab2f4" + "reference": "b1c81514cfe158aadf724c42b34d3d0a8164c096" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/8974a1213be42c3e2f70b2c27b17f910291ab2f4", - "reference": "8974a1213be42c3e2f70b2c27b17f910291ab2f4", + "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/b1c81514cfe158aadf724c42b34d3d0a8164c096", + "reference": "b1c81514cfe158aadf724c42b34d3d0a8164c096", "shasum": "" }, "require": { - "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" + "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" }, "conflict": { "zendframework/zend-stdlib": "*" }, "require-dev": { - "laminas/laminas-coding-standard": "^3.0", - "phpbench/phpbench": "^1.3.1", - "phpunit/phpunit": "^10.5.38", - "psalm/plugin-phpunit": "^0.19.0", - "vimeo/psalm": "^5.26.1" + "laminas/laminas-coding-standard": "^3.1.0", + "phpbench/phpbench": "^1.4.1", + "phpunit/phpunit": "^11.5.42", + "psalm/plugin-phpunit": "^0.19.5", + "vimeo/psalm": "^6.13.1" }, "type": "library", "autoload": { @@ -3805,7 +3575,7 @@ "type": "community_bridge" } ], - "time": "2024-10-29T13:46:07+00:00" + "time": "2025-10-11T18:13:12+00:00" }, { "name": "league/uri", @@ -6003,6 +5773,72 @@ ], "time": "2023-02-07T11:34:05+00:00" }, + { + "name": "shipmonk/composer-dependency-analyser", + "version": "1.8.3", + "source": { + "type": "git", + "url": "https://github.com/shipmonk-rnd/composer-dependency-analyser.git", + "reference": "ca6b2725cd4854d97c1ce08e6954a74fbdd25372" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/shipmonk-rnd/composer-dependency-analyser/zipball/ca6b2725cd4854d97c1ce08e6954a74fbdd25372", + "reference": "ca6b2725cd4854d97c1ce08e6954a74fbdd25372", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "editorconfig-checker/editorconfig-checker": "^10.6.0", + "ergebnis/composer-normalize": "^2.19.0", + "ext-dom": "*", + "ext-libxml": "*", + "phpcompatibility/php-compatibility": "^9.3.5", + "phpstan/phpstan": "^1.12.3", + "phpstan/phpstan-phpunit": "^1.4.0", + "phpstan/phpstan-strict-rules": "^1.6.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "shipmonk/name-collision-detector": "^2.1.1", + "slevomat/coding-standard": "^8.15.0" + }, + "bin": [ + "bin/composer-dependency-analyser" + ], + "type": "library", + "autoload": { + "psr-4": { + "ShipMonk\\ComposerDependencyAnalyser\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Fast detection of composer dependency issues (dead dependencies, shadow dependencies, misplaced dependencies)", + "keywords": [ + "analyser", + "composer", + "composer dependency", + "dead code", + "dead dependency", + "detector", + "dev", + "misplaced dependency", + "shadow dependency", + "static analysis", + "unused code", + "unused dependency" + ], + "support": { + "issues": "https://github.com/shipmonk-rnd/composer-dependency-analyser/issues", + "source": "https://github.com/shipmonk-rnd/composer-dependency-analyser/tree/1.8.3" + }, + "time": "2025-02-10T13:31:57+00:00" + }, { "name": "slevomat/coding-standard", "version": "8.22.1", diff --git a/phpcs.xml.dist b/phpcs.xml.dist index 5f98c048..986a2630 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -14,6 +14,7 @@ src test + composer-dependency-analyser.php