From acbd47ea30256946705e16919d9d8e350fbc4a1e Mon Sep 17 00:00:00 2001 From: Moiseenko Date: Mon, 26 Jan 2026 22:50:45 +0300 Subject: [PATCH 1/3] Applying Yii2 coding standards --- .github/workflows/linter.yml | 29 + .github/workflows/main.yml | 11 +- .github/workflows/static.yml | 12 +- CHANGELOG.md | 21 +- composer.json | 7 +- phpcs.xml.dist | 21 + phpstan-baseline.neon | 1351 +++++++++++++++++ phpstan.neon | 20 + src/ExecEvent.php | 4 +- src/InvalidJobException.php | 13 +- src/JobEvent.php | 4 +- src/JobInterface.php | 4 +- src/LogBehavior.php | 4 +- src/PushEvent.php | 4 +- src/Queue.php | 12 +- src/RetryableJobInterface.php | 4 +- src/cli/Action.php | 4 +- src/cli/Command.php | 4 +- src/cli/InfoAction.php | 4 +- src/cli/LoopInterface.php | 4 +- src/cli/Queue.php | 4 +- src/cli/SignalLoop.php | 4 +- src/cli/VerboseBehavior.php | 6 +- src/cli/WorkerEvent.php | 4 +- src/closure/Behavior.php | 4 +- src/closure/Job.php | 4 +- src/debug/Panel.php | 6 +- src/drivers/amqp_interop/Command.php | 4 +- src/drivers/amqp_interop/Queue.php | 10 +- src/drivers/beanstalk/Command.php | 4 +- src/drivers/beanstalk/InfoAction.php | 4 +- src/drivers/beanstalk/Queue.php | 18 +- src/drivers/db/Command.php | 4 +- src/drivers/db/InfoAction.php | 4 +- src/drivers/db/Queue.php | 20 +- src/drivers/db/StatisticsProvider.php | 4 +- .../db/migrations/M161119140200Queue.php | 4 +- .../db/migrations/M170307170300Later.php | 4 +- .../db/migrations/M170509001400Retry.php | 4 +- .../db/migrations/M170601155600Priority.php | 4 +- .../migrations/M211218163000JobQueueSize.php | 4 +- src/drivers/file/Command.php | 4 +- src/drivers/file/InfoAction.php | 4 +- src/drivers/file/Queue.php | 4 +- src/drivers/file/StatisticsProvider.php | 4 +- src/drivers/gearman/Command.php | 4 +- src/drivers/gearman/Queue.php | 4 +- src/drivers/redis/Command.php | 4 +- src/drivers/redis/InfoAction.php | 4 +- src/drivers/redis/Queue.php | 4 +- src/drivers/redis/StatisticsProvider.php | 4 +- src/drivers/sqs/Command.php | 4 +- src/drivers/sqs/Payload.php | 6 +- src/drivers/sqs/Queue.php | 6 +- src/drivers/stomp/Command.php | 4 +- src/drivers/stomp/Queue.php | 4 +- src/drivers/sync/Queue.php | 4 +- src/gii/Generator.php | 6 +- src/interfaces/DelayedCountInterface.php | 4 +- src/interfaces/DoneCountInterface.php | 4 +- src/interfaces/ReservedCountInterface.php | 4 +- src/interfaces/StatisticsInterface.php | 4 +- .../StatisticsProviderInterface.php | 4 +- src/interfaces/WaitingCountInterface.php | 4 +- src/serializers/IgbinarySerializer.php | 4 +- src/serializers/JsonSerializer.php | 4 +- src/serializers/PhpSerializer.php | 4 +- src/serializers/SerializerInterface.php | 4 +- tests/JobEventTest.php | 4 +- tests/TestCase.php | 4 +- tests/app/PriorityJob.php | 6 +- tests/app/RetryJob.php | 4 +- tests/app/SimpleJob.php | 4 +- tests/app/benchmark/Controller.php | 4 +- tests/app/benchmark/waiting/Action.php | 9 +- tests/app/benchmark/waiting/Job.php | 4 +- tests/bootstrap.php | 1 + tests/cli/InfoActionTest.php | 4 +- tests/cli/Queue.php | 4 +- .../cli/providers/BaseStatisticsProvider.php | 4 +- tests/cli/providers/DelayedCountProvider.php | 4 +- tests/cli/providers/DoneCountProvider.php | 4 +- tests/cli/providers/ReservedCountProvider.php | 4 +- tests/cli/providers/WaitingCountProvider.php | 4 +- tests/closure/ClosureJob.php | 6 + tests/closure/ClosureTest.php | 6 +- tests/docker/php/mysql-lock.php | 3 +- tests/drivers/CliTestCase.php | 6 +- tests/drivers/TestCase.php | 6 +- tests/drivers/amqp_interop/AmqpTestCase.php | 4 +- tests/drivers/amqp_interop/QueueTest.php | 4 +- tests/drivers/beanstalk/QueueTest.php | 4 +- tests/drivers/db/MysqlQueueTest.php | 4 +- tests/drivers/db/PgsqlQueueTest.php | 4 +- tests/drivers/db/SqliteQueueTest.php | 4 +- tests/drivers/db/TestCase.php | 4 +- tests/drivers/file/QueueTest.php | 6 +- tests/drivers/gearman/QueueTest.php | 4 +- tests/drivers/redis/QueueTest.php | 6 +- tests/drivers/redis/RedisCrashMock.php | 6 + tests/drivers/sqs/FifoQueueTest.php | 4 +- tests/drivers/sqs/QueueTest.php | 4 +- tests/drivers/stomp/QueueTest.php | 4 +- tests/drivers/sync/QueueTest.php | 4 +- tests/serializers/IgbinarySerializerTest.php | 4 +- tests/serializers/JsonSerializerTest.php | 4 +- tests/serializers/PhpSerializerTest.php | 4 +- tests/serializers/TestCase.php | 4 +- 108 files changed, 1691 insertions(+), 261 deletions(-) create mode 100644 .github/workflows/linter.yml create mode 100644 phpcs.xml.dist create mode 100644 phpstan-baseline.neon create mode 100644 phpstan.neon diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml new file mode 100644 index 0000000000..19eec75e9b --- /dev/null +++ b/.github/workflows/linter.yml @@ -0,0 +1,29 @@ +name: linter + +permissions: + contents: read + +on: + pull_request: &ignore-paths + paths-ignore: + - ".editorconfig" + - ".gitattributes" + - ".github/CONTRIBUTING.md" + - ".github/FUNDING.yml" + - ".github/ISSUE_TEMPLATE.md" + - ".github/PULL_REQUEST_TEMPLATE.md" + - ".github/SECURITY.md" + - ".gitignore" + - "docker-compose.yml" + - "LICENSE.md" + - "README.md" + - "CHANGELOG.md" + - "UPGRADE.md" + + push: *ignore-paths + +jobs: + phpcs: + uses: yiisoft/yii2-actions/.github/workflows/linter.yml@master + with: + directories: src/ tests/ diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a0c1a0f68b..8574a233c0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,9 +1,8 @@ ---- name: build on: pull_request: - paths-ignore: + paths-ignore: &ignore-paths - 'docs/**' - 'README.md' - 'CHANGELOG.md' @@ -13,13 +12,7 @@ on: push: branches: [ 'master' ] - paths-ignore: - - 'docs/**' - - 'README.md' - - 'CHANGELOG.md' - - 'UPGRADE.md' - - '.gitignore' - - '.gitattributes' + paths-ignore: *ignore-paths env: COMPOSE_PROJECT_NAME: yii2-queue diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index 9e5e160bbf..10d5f6e675 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -1,7 +1,6 @@ ---- on: pull_request: - paths-ignore: + paths-ignore: &ignore-paths - 'docs/**' - 'README.md' - 'CHANGELOG.md' @@ -12,14 +11,7 @@ on: push: branches: [ 'master' ] - paths-ignore: - - 'docs/**' - - 'README.md' - - 'CHANGELOG.md' - - 'UPGRADE.md' - - '.gitignore' - - '.gitattributes' - - 'phpunit.xml.dist' + paths-ignore: *ignore-paths name: static analysis diff --git a/CHANGELOG.md b/CHANGELOG.md index aacfa92966..3885981a95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,16 +3,17 @@ Yii2 Queue Extension Change Log 3.0.0 under development --- -- The minimum supported PHP version is 8.3 (@s1lver) -- Added PSALM for static code analysis. Error level set to 1 (@s1lver) -- Added strict typing (@s1lver) -- The `pda/pheanstalk` package of the Beanstalk driver has been updated to version 8.* (@s1lver) -- Removed deprecated interfaces `RetryableJob`, `Job`, `Serializer` (@s1lver) -- Removed deprecated classes `Signal`, `Verbose` (@s1lver) -- Deprecated driver amqp has been removed (@s1lver) -- Returned tests for the SQS driver (@s1lver) -- All dependent packages for supported drivers have been updated to the latest versions (@s1lver) -- The `opis/closure` package did not support PHP 8.1 and was replaced by the `laravel/serializable-closure` package (@s1lver) +- Enh #542: The minimum supported PHP version is 8.3 (@s1lver) +- Enh #503: Added PSALM for static code analysis. Error level set to 1 (@s1lver) +- Enh #503: Added strict typing (@s1lver) +- Enh #542: The `pda/pheanstalk` package of the Beanstalk driver has been updated to version 8.* (@s1lver) +- Enh #503: Removed deprecated interfaces `RetryableJob`, `Job`, `Serializer` (@s1lver) +- Enh #503: Removed deprecated classes `Signal`, `Verbose` (@s1lver) +- Enh #503: Deprecated driver amqp has been removed (@s1lver) +- Enh #542: Returned tests for the SQS driver (@s1lver) +- Enh #503: All dependent packages for supported drivers have been updated to the latest versions (@s1lver) +- Enh #503: The `opis/closure` package did not support PHP 8.1 and was replaced by the `laravel/serializable-closure` package (@s1lver) +- Enh #: Applying Yii2 coding standards (@s1lver) 2.3.8 January 08, 2026 ---------------------- diff --git a/composer.json b/composer.json index 602789f7c2..14ea134433 100644 --- a/composer.json +++ b/composer.json @@ -26,6 +26,7 @@ "yiisoft/yii2-redis": "~2.1.0", "yiisoft/yii2-debug": "~2.1.0", "yiisoft/yii2-gii": "~2.2.0", + "yiisoft/yii2-coding-standards": "^3.0", "php-amqplib/php-amqplib": "^3.0.0", "enqueue/amqp-lib": "^0.10.0", "enqueue/amqp-bunny": "^0.10.0", @@ -80,5 +81,9 @@ "type": "composer", "url": "https://asset-packagist.org" } - ] + ], + "scripts": { + "phpcbf": "./vendor/bin/phpcbf -q src/ tests/", + "phpcs": "./vendor/bin/phpcs -q src/ tests/" + } } diff --git a/phpcs.xml.dist b/phpcs.xml.dist new file mode 100644 index 0000000000..0e2c510615 --- /dev/null +++ b/phpcs.xml.dist @@ -0,0 +1,21 @@ + + + + + + + + + /src/ + /tests/ + + + /gii/form\.php$ + + + /gii/default/job\.php$ + + + /tests/ + + diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon new file mode 100644 index 0000000000..7f39aa2909 --- /dev/null +++ b/phpstan-baseline.neon @@ -0,0 +1,1351 @@ +parameters: + ignoreErrors: + - + message: '#^Class yii\\queue\\LogBehavior extends generic class yii\\base\\Behavior but does not specify its types\: T$#' + identifier: missingType.generics + count: 1 + path: src/LogBehavior.php + + - + message: '#^Method yii\\queue\\LogBehavior\:\:events\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/LogBehavior.php + + - + message: '#^Method yii\\queue\\Queue\:\:unserializeMessage\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/Queue.php + + - + message: '#^Property yii\\queue\\Queue\:\:\$serializer type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/Queue.php + + - + message: '#^Class yii\\queue\\cli\\Action extends generic class yii\\base\\Action but does not specify its types\: T$#' + identifier: missingType.generics + count: 1 + path: src/cli/Action.php + + - + message: '#^Instanceof between yii\\queue\\cli\\Queue and yii\\queue\\cli\\Queue will always evaluate to true\.$#' + identifier: instanceof.alwaysTrue + count: 1 + path: src/cli/Action.php + + - + message: '#^Parameter \#1 \$callback of function call_user_func_array expects callable\(\)\: mixed, array\{yii\\base\\Controller, ''ansiFormat''\} given\.$#' + identifier: argument.type + count: 1 + path: src/cli/Action.php + + - + message: '#^Property yii\\queue\\cli\\Action\:\:\$controller with generic class yii\\base\\Controller does not specify its types\: T$#' + identifier: missingType.generics + count: 1 + path: src/cli/Action.php + + - + message: '#^Class yii\\queue\\cli\\Command extends generic class yii\\console\\Controller but does not specify its types\: T$#' + identifier: missingType.generics + count: 1 + path: src/cli/Command.php + + - + message: '#^Method yii\\queue\\cli\\Command\:\:optionAliases\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/cli/Command.php + + - + message: '#^Parameter \#2 \$message of method yii\\queue\\cli\\Queue\:\:execute\(\) expects string, string\|false given\.$#' + identifier: argument.type + count: 1 + path: src/cli/Command.php + + - + message: '#^Property yii\\queue\\cli\\Command\:\:\$verboseConfig type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/cli/Command.php + + - + message: '#^Variable \$_ENV in isset\(\) always exists and is not nullable\.$#' + identifier: isset.variable + count: 1 + path: src/cli/Command.php + + - + message: '#^PHPDoc tag @property for property yii\\queue\\cli\\InfoAction\:\:\$controller contains generic class yii\\console\\Controller but does not specify its types\: T$#' + identifier: missingType.generics + count: 1 + path: src/cli/InfoAction.php + + - + message: '#^Parameter \#1 \$type of static method yii\\BaseYii\\:\:createObject\(\) expects array\{class\?\: class\-string\, __class\?\: class\-string\\}\|\(callable\(\)\: mixed\)\|class\-string\, array\|string given\.$#' + identifier: argument.type + count: 1 + path: src/cli/Queue.php + + - + message: '#^Property yii\\queue\\cli\\Queue\:\:\$commandOptions type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/cli/Queue.php + + - + message: '#^Property yii\\queue\\cli\\Queue\:\:\$loopConfig type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/cli/Queue.php + + - + message: '#^Property yii\\queue\\cli\\Queue\:\:\$workerPid \(int\|null\) does not accept int\|false\.$#' + identifier: assign.propertyType + count: 1 + path: src/cli/Queue.php + + - + message: '#^Strict comparison using \=\=\= between null and null will always evaluate to true\.$#' + identifier: identical.alwaysTrue + count: 1 + path: src/cli/Queue.php + + - + message: '#^Unable to resolve the template type T in call to static method yii\\BaseYii\\:\:createObject\(\)$#' + identifier: argument.templateType + count: 1 + path: src/cli/Queue.php + + - + message: '#^Class yii\\queue\\cli\\VerboseBehavior extends generic class yii\\base\\Behavior but does not specify its types\: T$#' + identifier: missingType.generics + count: 1 + path: src/cli/VerboseBehavior.php + + - + message: '#^Method yii\\queue\\cli\\VerboseBehavior\:\:events\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/cli/VerboseBehavior.php + + - + message: '#^Property yii\\queue\\cli\\VerboseBehavior\:\:\$command with generic class yii\\console\\Controller does not specify its types\: T$#' + identifier: missingType.generics + count: 1 + path: src/cli/VerboseBehavior.php + + - + message: '#^Class yii\\queue\\closure\\Behavior extends generic class yii\\base\\Behavior but does not specify its types\: T$#' + identifier: missingType.generics + count: 1 + path: src/closure/Behavior.php + + - + message: '#^Method yii\\queue\\closure\\Behavior\:\:events\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/closure/Behavior.php + + - + message: '#^Cannot access property \$data on array\\.$#' + identifier: property.nonObject + count: 2 + path: src/debug/Panel.php + + - + message: '#^Cannot call method getUrl\(\) on array\\.$#' + identifier: method.nonObject + count: 1 + path: src/debug/Panel.php + + - + message: '#^Method yii\\queue\\debug\\Panel\:\:getPushData\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/debug/Panel.php + + - + message: '#^PHPDoc tag @var for variable \$this has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 2 + path: src/debug/Panel.php + + - + message: '#^PHPDoc tag @var with type array\ is not subtype of native type \$this\(yii\\queue\\debug\\Panel\)\.$#' + identifier: varTag.nativeType + count: 2 + path: src/debug/Panel.php + + - + message: '#^Parameter \#3 \$context of method yii\\base\\View\:\:render\(\) expects object\|null, array\ given\.$#' + identifier: argument.type + count: 2 + path: src/debug/Panel.php + + - + message: '#^Property yii\\queue\\debug\\Panel\:\:\$jobs type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/debug/Panel.php + + - + message: '#^PHPDoc tag @var for variable \$jobs has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/debug/views/detail.php + + - + message: '#^Anonymous function never returns callable\(\)\: mixed so it can be removed from the return type\.$#' + identifier: return.unusedType + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^Cannot call method bind\(\) on Interop\\Queue\\Context\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^Cannot call method createMessage\(\) on Interop\\Queue\\Context\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^Cannot call method createProducer\(\) on Interop\\Queue\\Context\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^Cannot call method createQueue\(\) on Interop\\Queue\\Context\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^Cannot call method createTopic\(\) on Interop\\Queue\\Context\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^Cannot call method declareQueue\(\) on Interop\\Queue\\Context\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^Cannot call method declareTopic\(\) on Interop\\Queue\\Context\|null\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^Comparison operation "\>\=" between 8 and 7 is always true\.$#' + identifier: greaterOrEqual.alwaysTrue + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^PHPDoc tag @var with type Interop\\Amqp\\AmqpConnectionFactory is not subtype of native type Enqueue\\AmqpBunny\\AmqpConnectionFactory\|Enqueue\\AmqpExt\\AmqpConnectionFactory\|Enqueue\\AmqpLib\\AmqpConnectionFactory\.$#' + identifier: varTag.nativeType + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^Property yii\\queue\\amqp_interop\\Queue\:\:\$queueOptionalArguments type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^Property yii\\queue\\amqp_interop\\Queue\:\:\$setMessageHeaders type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/amqp_interop/Queue.php + + - + message: '#^Argument of an invalid type Pheanstalk\\Values\\TubeStats supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: src/drivers/beanstalk/InfoAction.php + + - + message: '#^Method yii\\queue\\db\\Queue\:\:release\(\) has parameter \$payload with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/db/Queue.php + + - + message: '#^Method yii\\queue\\db\\Queue\:\:reserve\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/db/Queue.php + + - + message: '#^Property yii\\queue\\db\\Queue\:\:\$db type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/db/Queue.php + + - + message: '#^Property yii\\queue\\db\\Queue\:\:\$mutex type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/db/Queue.php + + - + message: '#^Access to an undefined property yii\\db\\Connection\:\:\$queue\.$#' + identifier: property.notFound + count: 12 + path: src/drivers/db/StatisticsProvider.php + + - + message: '#^PHPDoc tag @var with type yii\\db\\Connection is not subtype of native type \$this\(yii\\queue\\db\\StatisticsProvider\)\.$#' + identifier: varTag.nativeType + count: 4 + path: src/drivers/db/StatisticsProvider.php + + - + message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M161119140200Queue\:\:down\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:down\(\)$#' + identifier: method.childReturnType + count: 1 + path: src/drivers/db/migrations/M161119140200Queue.php + + - + message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M161119140200Queue\:\:up\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:up\(\)$#' + identifier: method.childReturnType + count: 1 + path: src/drivers/db/migrations/M161119140200Queue.php + + - + message: '#^Parameter \#3 \$type of method yii\\db\\Migration\:\:addColumn\(\) expects string, yii\\db\\ColumnSchemaBuilder given\.$#' + identifier: argument.type + count: 1 + path: src/drivers/db/migrations/M170307170300Later.php + + - + message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170307170300Later\:\:down\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:down\(\)$#' + identifier: method.childReturnType + count: 1 + path: src/drivers/db/migrations/M170307170300Later.php + + - + message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170307170300Later\:\:up\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:up\(\)$#' + identifier: method.childReturnType + count: 1 + path: src/drivers/db/migrations/M170307170300Later.php + + - + message: '#^Cannot access property \$driverName on array\|string\|yii\\db\\Connection\.$#' + identifier: property.nonObject + count: 2 + path: src/drivers/db/migrations/M170509001400Retry.php + + - + message: '#^Parameter \#3 \$type of method yii\\db\\Migration\:\:addColumn\(\) expects string, yii\\db\\ColumnSchemaBuilder given\.$#' + identifier: argument.type + count: 2 + path: src/drivers/db/migrations/M170509001400Retry.php + + - + message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170509001400Retry\:\:down\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:down\(\)$#' + identifier: method.childReturnType + count: 1 + path: src/drivers/db/migrations/M170509001400Retry.php + + - + message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170509001400Retry\:\:up\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:up\(\)$#' + identifier: method.childReturnType + count: 1 + path: src/drivers/db/migrations/M170509001400Retry.php + + - + message: '#^Parameter \#3 \$type of method yii\\db\\Migration\:\:addColumn\(\) expects string, yii\\db\\ColumnSchemaBuilder given\.$#' + identifier: argument.type + count: 1 + path: src/drivers/db/migrations/M170601155600Priority.php + + - + message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170601155600Priority\:\:down\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:down\(\)$#' + identifier: method.childReturnType + count: 1 + path: src/drivers/db/migrations/M170601155600Priority.php + + - + message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170601155600Priority\:\:up\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:up\(\)$#' + identifier: method.childReturnType + count: 1 + path: src/drivers/db/migrations/M170601155600Priority.php + + - + message: '#^Cannot access property \$driverName on array\|string\|yii\\db\\Connection\.$#' + identifier: property.nonObject + count: 2 + path: src/drivers/db/migrations/M211218163000JobQueueSize.php + + - + message: '#^Parameter \#3 \$type of method yii\\db\\Migration\:\:alterColumn\(\) expects string, yii\\db\\ColumnSchemaBuilder given\.$#' + identifier: argument.type + count: 1 + path: src/drivers/db/migrations/M211218163000JobQueueSize.php + + - + message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M211218163000JobQueueSize\:\:down\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:down\(\)$#' + identifier: method.childReturnType + count: 1 + path: src/drivers/db/migrations/M211218163000JobQueueSize.php + + - + message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M211218163000JobQueueSize\:\:up\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:up\(\)$#' + identifier: method.childReturnType + count: 1 + path: src/drivers/db/migrations/M211218163000JobQueueSize.php + + - + message: '#^Offset ''lastId'' on array\{lastId\: int\} on left side of \?\? always exists and is not nullable\.$#' + identifier: nullCoalesce.offset + count: 1 + path: src/drivers/file/InfoAction.php + + - + message: '#^PHPDoc tag @var for variable \$data has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 3 + path: src/drivers/file/InfoAction.php + + - + message: '#^Argument of an invalid type list\\|false supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: src/drivers/file/Queue.php + + - + message: '#^Method yii\\queue\\file\\Queue\:\:delete\(\) has parameter \$payload with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/file/Queue.php + + - + message: '#^Method yii\\queue\\file\\Queue\:\:reserve\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/file/Queue.php + + - + message: '#^Offset ''lastId'' on array\{lastId\: int, waiting\: array, delayed\: array\} in isset\(\) always exists and is not nullable\.$#' + identifier: isset.offset + count: 1 + path: src/drivers/file/Queue.php + + - + message: '#^PHPDoc tag @var for variable \$data has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 9 + path: src/drivers/file/Queue.php + + - + message: '#^PHPDoc tag @var for variable \$payload has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 5 + path: src/drivers/file/Queue.php + + - + message: '#^PHPDoc tag @var with type int\|string\|null is not subtype of native type int\.$#' + identifier: varTag.nativeType + count: 1 + path: src/drivers/file/Queue.php + + - + message: '#^Strict comparison using \!\=\= between false and string will always evaluate to true\.$#' + identifier: notIdentical.alwaysTrue + count: 1 + path: src/drivers/file/Queue.php + + - + message: '#^Variable \$data in PHPDoc tag @var does not match any variable in the foreach loop\: \$key, \$payload$#' + identifier: varTag.differentVariable + count: 1 + path: src/drivers/file/Queue.php + + - + message: '#^Method yii\\queue\\file\\StatisticsProvider\:\:getIndexData\(\) has no return type specified\.$#' + identifier: missingType.return + count: 1 + path: src/drivers/file/StatisticsProvider.php + + - + message: '#^Offset ''lastId'' on array\{lastId\: int\} in isset\(\) always exists and is not nullable\.$#' + identifier: isset.offset + count: 1 + path: src/drivers/file/StatisticsProvider.php + + - + message: '#^PHPDoc tag @var for variable \$data has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 3 + path: src/drivers/file/StatisticsProvider.php + + - + message: '#^Cannot call method get\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/InfoAction.php + + - + message: '#^Cannot call method llen\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/InfoAction.php + + - + message: '#^Cannot call method zcount\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 2 + path: src/drivers/redis/InfoAction.php + + - + message: '#^Cannot call method brpop\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method executeCommand\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method hdel\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 4 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method hexists\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 2 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method hget\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method hincrby\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method hset\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method incr\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method keys\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method lpush\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method lrem\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method rpop\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method rpush\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method set\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 3 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method zadd\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 2 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method zrem\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 3 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method zremrangebyscore\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method zrevrangebyscore\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Method yii\\queue\\redis\\Queue\:\:reserve\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^PHPDoc tag @var for variable \$result has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Property yii\\queue\\redis\\Queue\:\:\$redis type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/redis/Queue.php + + - + message: '#^Cannot call method get\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/StatisticsProvider.php + + - + message: '#^Cannot call method llen\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: src/drivers/redis/StatisticsProvider.php + + - + message: '#^Cannot call method zcount\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 2 + path: src/drivers/redis/StatisticsProvider.php + + - + message: '#^Method yii\\queue\\sqs\\Payload\:\:__construct\(\) has parameter \$response with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/sqs/Payload.php + + - + message: '#^Offset ''Messages'' on array\{Messages\: array\} on left side of \?\? always exists and is not nullable\.$#' + identifier: nullCoalesce.offset + count: 1 + path: src/drivers/sqs/Payload.php + + - + message: '#^PHPDoc tag @var for variable \$message has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 2 + path: src/drivers/sqs/Payload.php + + - + message: '#^Property yii\\queue\\sqs\\Payload\:\:\$messages type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/sqs/Payload.php + + - + message: '#^PHPDoc tag @var for variable \$response has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/sqs/Queue.php + + - + message: '#^Property yii\\queue\\sqs\\Queue\:\:\$serializer type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/sqs/Queue.php + + - + message: '#^Property yii\\queue\\sync\\Queue\:\:\$payloads type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/drivers/sync/Queue.php + + - + message: '#^Method yii\\queue\\gii\\Generator\:\:hints\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/gii/Generator.php + + - + message: '#^Method yii\\queue\\gii\\Generator\:\:requiredTemplates\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/gii/Generator.php + + - + message: '#^Method yii\\queue\\gii\\Generator\:\:stickyAttributes\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: src/gii/Generator.php + + - + message: '#^Parameter \#1 \$array of function array_unique expects array, list\\|false given\.$#' + identifier: argument.type + count: 1 + path: src/gii/Generator.php + + - + message: '#^Strict comparison using \=\=\= between false and string will always evaluate to false\.$#' + identifier: identical.alwaysFalse + count: 1 + path: src/gii/Generator.php + + - + message: '#^PHPDoc tag @var with type string\|false\|null is not subtype of native type string\|null\.$#' + identifier: varTag.nativeType + count: 1 + path: src/serializers/IgbinarySerializer.php + + - + message: '#^Unable to resolve the template type T in call to static method yii\\BaseYii\\:\:createObject\(\)$#' + identifier: argument.templateType + count: 1 + path: src/serializers/JsonSerializer.php + + - + message: '#^Parameter \#1 \$filename of function file_put_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/app/PriorityJob.php + + - + message: '#^Parameter \#1 \$filename of function file_put_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/app/RetryJob.php + + - + message: '#^Parameter \#1 \$filename of function file_put_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/app/SimpleJob.php + + - + message: '#^Class tests\\app\\benchmark\\Controller extends generic class yii\\console\\Controller but does not specify its types\: T$#' + identifier: missingType.generics + count: 1 + path: tests/app/benchmark/Controller.php + + - + message: '#^Class tests\\app\\benchmark\\waiting\\Action extends generic class yii\\base\\Action but does not specify its types\: T$#' + identifier: missingType.generics + count: 1 + path: tests/app/benchmark/waiting/Action.php + + - + message: '#^Method tests\\app\\benchmark\\waiting\\Action\:\:calcResult\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/app/benchmark/waiting/Action.php + + - + message: '#^Method tests\\app\\benchmark\\waiting\\Action\:\:startWorkers\(\) has parameter \$command with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/app/benchmark/waiting/Action.php + + - + message: '#^PHPDoc tag @throws has invalid value \(\)\: Unexpected token "\\n ", expected type at offset 313 on line 8$#' + identifier: phpDoc.parseError + count: 1 + path: tests/app/benchmark/waiting/Action.php + + - + message: '#^PHPDoc tag @var with type array\ is not subtype of native type list\\.$#' + identifier: varTag.nativeType + count: 1 + path: tests/app/benchmark/waiting/Action.php + + - + message: '#^Parameter \#1 \$string of function trim expects string, string\|false given\.$#' + identifier: argument.type + count: 1 + path: tests/app/benchmark/waiting/Action.php + + - + message: '#^Parameter \#1 \.\.\.\$arg1 of function max expects non\-empty\-array, list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/app/benchmark/waiting/Action.php + + - + message: '#^Parameter \#1 \.\.\.\$arg1 of function min expects non\-empty\-array, list\ given\.$#' + identifier: argument.type + count: 1 + path: tests/app/benchmark/waiting/Action.php + + - + message: '#^Property tests\\app\\benchmark\\waiting\\Action\:\:\$modes type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/app/benchmark/waiting/Action.php + + - + message: '#^Access to constant ATTR_INIT_COMMAND on an unknown class Pdo\\Mysql\.$#' + identifier: class.notFound + count: 1 + path: tests/app/config/main.php + + - + message: '#^Comparison operation "\>\=" between \-1 and 0 is always false\.$#' + identifier: greaterOrEqual.alwaysFalse + count: 1 + path: tests/app/config/main.php + + - + message: '#^Argument of an invalid type list\\|false supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: tests/closure/ClosureTest.php + + - + message: '#^Property tests\\closure\\ClosureTest\:\:\$_queue has no type specified\.$#' + identifier: missingType.property + count: 1 + path: tests/closure/ClosureTest.php + + - + message: '#^Parameter \#2 \$username of class PDO constructor expects string\|null, string\|false given\.$#' + identifier: argument.type + count: 1 + path: tests/docker/php/mysql-lock.php + + - + message: '#^Parameter \#3 \$password of class PDO constructor expects string\|null, string\|false given\.$#' + identifier: argument.type + count: 1 + path: tests/docker/php/mysql-lock.php + + - + message: '#^Method tests\\drivers\\CliTestCase\:\:prepareCmd\(\) has parameter \$cmd with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/drivers/CliTestCase.php + + - + message: '#^Method tests\\drivers\\CliTestCase\:\:prepareCmd\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/drivers/CliTestCase.php + + - + message: '#^Method tests\\drivers\\CliTestCase\:\:runProcess\(\) has parameter \$cmd with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/drivers/CliTestCase.php + + - + message: '#^Method tests\\drivers\\CliTestCase\:\:startProcess\(\) has parameter \$cmd with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/drivers/CliTestCase.php + + - + message: '#^Parameter \#1 \$filename of function file_exists expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/CliTestCase.php + + - + message: '#^Parameter \#1 \$filename of function unlink expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/CliTestCase.php + + - + message: '#^Argument of an invalid type list\\|false supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: tests/drivers/TestCase.php + + - + message: '#^Parameter \#1 \$filename of function file_exists expects string, bool\|string given\.$#' + identifier: argument.type + count: 2 + path: tests/drivers/TestCase.php + + - + message: '#^Parameter \#1 \$filename of function filemtime expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/TestCase.php + + - + message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' + identifier: argument.type + count: 2 + path: tests/drivers/TestCase.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$amqpInteropQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/amqp_interop/AmqpTestCase.php + + - + message: '#^Method tests\\drivers\\amqp_interop\\AmqpTestCase\:\:getConnectionConfig\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/drivers/amqp_interop/AmqpTestCase.php + + - + message: '#^Parameter \#1 \$name of method Enqueue\\AmqpLib\\AmqpContext\:\:createQueue\(\) expects string, string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/amqp_interop/AmqpTestCase.php + + - + message: '#^Parameter \#1 \$name of method Enqueue\\AmqpLib\\AmqpContext\:\:createTopic\(\) expects string, string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/amqp_interop/AmqpTestCase.php + + - + message: '#^Parameter \#2 \$port of class PhpAmqpLib\\Connection\\AMQPStreamConnection constructor expects int, int\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/amqp_interop/AmqpTestCase.php + + - + message: '#^Unable to resolve the template type T in call to static method yii\\BaseYii\\:\:createObject\(\)$#' + identifier: argument.templateType + count: 1 + path: tests/drivers/amqp_interop/AmqpTestCase.php + + - + message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 2 + path: tests/drivers/amqp_interop/QueueTest.php + + - + message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/amqp_interop/QueueTest.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$beanstalkQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/beanstalk/QueueTest.php + + - + message: '#^PHPDoc tag @throws has invalid value \(\)\: Unexpected token "\\n ", expected type at offset 81 on line 4$#' + identifier: phpDoc.parseError + count: 1 + path: tests/drivers/beanstalk/QueueTest.php + + - + message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/beanstalk/QueueTest.php + + - + message: '#^Parameter \#1 \$id of class Pheanstalk\\Values\\JobId constructor expects int\|Pheanstalk\\Contract\\JobIdInterface\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/beanstalk/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/beanstalk/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/beanstalk/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\beanstalk\\Queue\:\:remove\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/beanstalk/QueueTest.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$mysqlQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/db/MysqlQueueTest.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$pgsqlQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/db/PgsqlQueueTest.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$sqliteQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/db/SqliteQueueTest.php + + - + message: '#^Access to an undefined property yii\\queue\\Queue\:\:\$channel\.$#' + identifier: property.notFound + count: 2 + path: tests/drivers/db/TestCase.php + + - + message: '#^Access to an undefined property yii\\queue\\Queue\:\:\$db\.$#' + identifier: property.notFound + count: 3 + path: tests/drivers/db/TestCase.php + + - + message: '#^Access to an undefined property yii\\queue\\Queue\:\:\$messageHandler\.$#' + identifier: property.notFound + count: 3 + path: tests/drivers/db/TestCase.php + + - + message: '#^Access to an undefined property yii\\queue\\Queue\:\:\$tableName\.$#' + identifier: property.notFound + count: 3 + path: tests/drivers/db/TestCase.php + + - + message: '#^Call to an undefined method yii\\queue\\Queue\:\:getStatisticsProvider\(\)\.$#' + identifier: method.notFound + count: 4 + path: tests/drivers/db/TestCase.php + + - + message: '#^Call to an undefined method yii\\queue\\Queue\:\:run\(\)\.$#' + identifier: method.notFound + count: 2 + path: tests/drivers/db/TestCase.php + + - + message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 2 + path: tests/drivers/db/TestCase.php + + - + message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/db/TestCase.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/db/TestCase.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/db/TestCase.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$fileQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/file/QueueTest.php + + - + message: '#^Argument of an invalid type list\\|false supplied for foreach, only iterables are supported\.$#' + identifier: foreach.nonIterable + count: 1 + path: tests/drivers/file/QueueTest.php + + - + message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getDelayedCount\(\)\.$#' + identifier: method.notFound + count: 1 + path: tests/drivers/file/QueueTest.php + + - + message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getDoneCount\(\)\.$#' + identifier: method.notFound + count: 1 + path: tests/drivers/file/QueueTest.php + + - + message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getReservedCount\(\)\.$#' + identifier: method.notFound + count: 1 + path: tests/drivers/file/QueueTest.php + + - + message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getWaitingCount\(\)\.$#' + identifier: method.notFound + count: 1 + path: tests/drivers/file/QueueTest.php + + - + message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/file/QueueTest.php + + - + message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/file/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/file/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/file/QueueTest.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$gearmanQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/gearman/QueueTest.php + + - + message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/gearman/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/gearman/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/gearman/QueueTest.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$redisQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getDelayedCount\(\)\.$#' + identifier: method.notFound + count: 1 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getDoneCount\(\)\.$#' + identifier: method.notFound + count: 1 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getReservedCount\(\)\.$#' + identifier: method.notFound + count: 1 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getWaitingCount\(\)\.$#' + identifier: method.notFound + count: 1 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Cannot call method flushdb\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 1 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Cannot call method hexists\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 2 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Cannot call method keys\(\) on array\|string\|yii\\redis\\Connection\.$#' + identifier: method.nonObject + count: 2 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/redis/QueueTest.php + + - + message: '#^Method tests\\drivers\\redis\\RedisCrashMock\:\:executeCommand\(\) has parameter \$params with no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/drivers/redis/RedisCrashMock.php + + - + message: '#^Method tests\\drivers\\redis\\RedisCrashMock\:\:executeCommand\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/drivers/redis/RedisCrashMock.php + + - + message: '#^Property tests\\drivers\\redis\\RedisCrashMock\:\:\$crashOnCommand has no type specified\.$#' + identifier: missingType.property + count: 1 + path: tests/drivers/redis/RedisCrashMock.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$sqsFifoQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/sqs/FifoQueueTest.php + + - + message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/sqs/FifoQueueTest.php + + - + message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/sqs/FifoQueueTest.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$sqsQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/sqs/QueueTest.php + + - + message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/sqs/QueueTest.php + + - + message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/sqs/QueueTest.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$stompQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/stomp/QueueTest.php + + - + message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/stomp/QueueTest.php + + - + message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/stomp/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/stomp/QueueTest.php + + - + message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$syncQueue\.$#' + identifier: property.notFound + count: 1 + path: tests/drivers/sync/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/sync/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isReserved\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/sync/QueueTest.php + + - + message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' + identifier: argument.type + count: 1 + path: tests/drivers/sync/QueueTest.php + + - + message: '#^Method tests\\serializers\\TestCase\:\:providerSerialize\(\) return type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/serializers/TestCase.php + + - + message: '#^Property tests\\serializers\\TestObject\:\:\$bar type has no value type specified in iterable type array\.$#' + identifier: missingType.iterableValue + count: 1 + path: tests/serializers/TestCase.php diff --git a/phpstan.neon b/phpstan.neon new file mode 100644 index 0000000000..9d8bf04ae8 --- /dev/null +++ b/phpstan.neon @@ -0,0 +1,20 @@ +includes: + - vendor/phpstan/phpstan-phpunit/extension.neon + - phpstan-baseline.neon +parameters: + phpVersion: + min: 80300 + max: 80500 + level: 8 + dynamicConstantNames: + - YII_ENABLE_ERROR_HANDLER + - YII_DEBUG + bootstrapFiles: + - tests/bootstrap.php + scanFiles: + - support/ide-helper.php + excludePaths: + - vendor + paths: + - src + - tests diff --git a/src/ExecEvent.php b/src/ExecEvent.php index b59b9dafd0..3af014c4ce 100644 --- a/src/ExecEvent.php +++ b/src/ExecEvent.php @@ -1,13 +1,13 @@ unserializeMessage($message); // Handle aborted jobs without throwing an error. - if ($attempt > 1 && - (($job instanceof RetryableJobInterface && !$job->canRetry($attempt - 1, $error)) - || (!($job instanceof RetryableJobInterface) && $attempt > $this->attempts))) { + if ( + $attempt > 1 + && (($job instanceof RetryableJobInterface && !$job->canRetry($attempt - 1, $error)) + || (!($job instanceof RetryableJobInterface) && $attempt > $this->attempts)) + ) { return true; } $event = new ExecEvent([ diff --git a/src/RetryableJobInterface.php b/src/RetryableJobInterface.php index f61ec269b5..147a0aa41b 100644 --- a/src/RetryableJobInterface.php +++ b/src/RetryableJobInterface.php @@ -1,13 +1,13 @@ command->stdout(' - ', BaseConsole::FG_YELLOW); $this->command->stdout('Done', BaseConsole::FG_GREEN); $duration = number_format(round(microtime(true) - $this->jobStartedAt, 3), 3); - $memory = round(memory_get_peak_usage()/1024/1024, 2); + $memory = round(memory_get_peak_usage() / 1024 / 1024, 2); $this->command->stdout(" ($duration s, $memory MiB)", BaseConsole::FG_YELLOW); $this->command->stdout(PHP_EOL); } diff --git a/src/cli/WorkerEvent.php b/src/cli/WorkerEvent.php index 530c8ebd59..15aa1ae77b 100644 --- a/src/cli/WorkerEvent.php +++ b/src/cli/WorkerEvent.php @@ -1,13 +1,13 @@ isDone($job['id'])) { $job['status'] = 'done'; } - } catch (NotSupportedException|Exception $e) { + } catch (NotSupportedException | Exception $e) { $job['status'] = $e->getMessage(); } } diff --git a/src/drivers/amqp_interop/Command.php b/src/drivers/amqp_interop/Command.php index b24f1cc252..dcb9ce2451 100644 --- a/src/drivers/amqp_interop/Command.php +++ b/src/drivers/amqp_interop/Command.php @@ -1,13 +1,13 @@ setProperty(self::ATTEMPT, ++$attempt); $this->context->createProducer()->send( - $this->context->createQueue($this->queueName), - $newMessage - ); + $this->context->createQueue($this->queueName), + $newMessage + ); } private function createQueue(): AmqpQueue diff --git a/src/drivers/beanstalk/Command.php b/src/drivers/beanstalk/Command.php index 2df4e720a7..4d7e272b76 100644 --- a/src/drivers/beanstalk/Command.php +++ b/src/drivers/beanstalk/Command.php @@ -1,13 +1,13 @@ statsJob($job); - if ($this->handleMessage( - $job->getId(), - $job->getData(), - $info->timeToRelease, - $info->reserves - )) { + if ( + $this->handleMessage( + $job->getId(), + $job->getData(), + $info->timeToRelease, + $info->reserves + ) + ) { $pheanstalk->delete($job); } } catch (Exception) { diff --git a/src/drivers/db/Command.php b/src/drivers/db/Command.php index 4978bdd7f2..bb873996e1 100644 --- a/src/drivers/db/Command.php +++ b/src/drivers/db/Command.php @@ -1,13 +1,13 @@ reserve()) { /** @psalm-var array{id: int|string, job:string, ttr:int|string, attempt:int|string} $payload */ - if ($this->handleMessage( - $payload['id'], - $payload['job'], - (int) $payload['ttr'], - (int) $payload['attempt'] - )) { + if ( + $this->handleMessage( + $payload['id'], + $payload['job'], + (int) $payload['ttr'], + (int) $payload['attempt'] + ) + ) { $this->release($payload); } } elseif (!$repeat) { @@ -176,7 +178,7 @@ protected function pushMessage(string $payload, int $ttr, int $delay, mixed $pri if (null === $tableSchema) { return null; } - return $this->getDb()->getLastInsertID($tableSchema->sequenceName??''); + return $this->getDb()->getLastInsertID($tableSchema->sequenceName ?? ''); } /** diff --git a/src/drivers/db/StatisticsProvider.php b/src/drivers/db/StatisticsProvider.php index c5d0f3a9bf..6c77882057 100644 --- a/src/drivers/db/StatisticsProvider.php +++ b/src/drivers/db/StatisticsProvider.php @@ -1,13 +1,13 @@ messages = $response['Messages']??[]; + $this->messages = $response['Messages'] ?? []; if (!empty($this->messages)) { $messages = $this->messages; /** @var array{ diff --git a/src/drivers/sqs/Queue.php b/src/drivers/sqs/Queue.php index c2e6c0aa73..2dc93af672 100644 --- a/src/drivers/sqs/Queue.php +++ b/src/drivers/sqs/Queue.php @@ -1,13 +1,13 @@ getClient()->sendMessage($request); - return null === $response['MessageId']?null:(string)$response['MessageId']; + return null === $response['MessageId'] ? null : (string)$response['MessageId']; } /** diff --git a/src/drivers/stomp/Command.php b/src/drivers/stomp/Command.php index 974a0d1c31..da42357a06 100644 --- a/src/drivers/stomp/Command.php +++ b/src/drivers/stomp/Command.php @@ -1,13 +1,13 @@ jobClass . '.php', + $alias . '/' . $this->jobClass . '.php', $this->render('job.php', $params) ); diff --git a/src/interfaces/DelayedCountInterface.php b/src/interfaces/DelayedCountInterface.php index fcf19fd222..1fa82cf5f7 100644 --- a/src/interfaces/DelayedCountInterface.php +++ b/src/interfaces/DelayedCountInterface.php @@ -1,13 +1,13 @@ modes[$mode] as $queueName => $workerCommand) { @@ -96,7 +96,6 @@ public function run(string $mode = 'fast', int $jobCount = 1000, int $workerCoun $pushedCount = 0; while ($pushedCount < $jobCount) { - // Push batch of jobs $jobs = []; for ($i = 0; $i < $workerCount && $pushedCount < $jobCount; $i++) { diff --git a/tests/app/benchmark/waiting/Job.php b/tests/app/benchmark/waiting/Job.php index 0337ebe2b8..8dcd237772 100644 --- a/tests/app/benchmark/waiting/Job.php +++ b/tests/app/benchmark/waiting/Job.php @@ -1,13 +1,13 @@ getErrorOutput(); $this->assertEmpty( $error, - "Can not execute " . implode($cmd) . " command:\n$error" + 'Can not execute ' . implode($cmd) . " command:\n$error" ); } diff --git a/tests/drivers/TestCase.php b/tests/drivers/TestCase.php index 287447ca81..4a7feb34ee 100644 --- a/tests/drivers/TestCase.php +++ b/tests/drivers/TestCase.php @@ -1,13 +1,13 @@ getQueue()->messageHandler = null; - foreach (glob(Yii::getAlias("@runtime/queue/*")) as $fileName) { + foreach (glob(Yii::getAlias('@runtime/queue/*')) as $fileName) { unlink($fileName); } parent::tearDown(); diff --git a/tests/drivers/gearman/QueueTest.php b/tests/drivers/gearman/QueueTest.php index c47e30e746..ccfab02e3f 100644 --- a/tests/drivers/gearman/QueueTest.php +++ b/tests/drivers/gearman/QueueTest.php @@ -1,13 +1,13 @@ getQueue()->delay(1)->push($job); // Expect a single message to be received. $messageCount = 0; - $this->getQueue()->messageHandler = static function () use(&$messageCount) { + $this->getQueue()->messageHandler = static function () use (&$messageCount) { $messageCount++; return true; }; diff --git a/tests/drivers/redis/RedisCrashMock.php b/tests/drivers/redis/RedisCrashMock.php index b332d6abec..2f135110bc 100644 --- a/tests/drivers/redis/RedisCrashMock.php +++ b/tests/drivers/redis/RedisCrashMock.php @@ -1,5 +1,11 @@ Date: Mon, 26 Jan 2026 22:56:42 +0300 Subject: [PATCH 2/3] Applying Yii2 coding standards --- .github/ISSUE_TEMPLATE.md | 19 - .github/PULL_REQUEST_TEMPLATE.md | 6 - .github/workflows/linter.yml | 2 - CHANGELOG.md | 2 +- phpstan-baseline.neon | 1351 ------------------------------ phpstan.neon | 20 - 6 files changed, 1 insertion(+), 1399 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE.md delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 phpstan-baseline.neon delete mode 100644 phpstan.neon diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 63031f9153..0000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,19 +0,0 @@ - - -### What steps will reproduce the problem? - -### What's expected? - -### What do you get instead? - - -### Additional info - -| Q | A -| ---------------- | --- -| Yii version | -| PHP version | -| Operating system | diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index cecccf6dcf..0000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,6 +0,0 @@ -| Q | A -| ------------- | --- -| Is bugfix? | ✔️/❌ -| New feature? | ✔️/❌ -| Breaks BC? | ✔️/❌ -| Fixed issues | diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index 19eec75e9b..bef245edf5 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -10,8 +10,6 @@ on: - ".gitattributes" - ".github/CONTRIBUTING.md" - ".github/FUNDING.yml" - - ".github/ISSUE_TEMPLATE.md" - - ".github/PULL_REQUEST_TEMPLATE.md" - ".github/SECURITY.md" - ".gitignore" - "docker-compose.yml" diff --git a/CHANGELOG.md b/CHANGELOG.md index 3885981a95..1384e485ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ Yii2 Queue Extension Change Log - Enh #542: Returned tests for the SQS driver (@s1lver) - Enh #503: All dependent packages for supported drivers have been updated to the latest versions (@s1lver) - Enh #503: The `opis/closure` package did not support PHP 8.1 and was replaced by the `laravel/serializable-closure` package (@s1lver) -- Enh #: Applying Yii2 coding standards (@s1lver) +- Enh #544: Applying Yii2 coding standards (@s1lver) 2.3.8 January 08, 2026 ---------------------- diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon deleted file mode 100644 index 7f39aa2909..0000000000 --- a/phpstan-baseline.neon +++ /dev/null @@ -1,1351 +0,0 @@ -parameters: - ignoreErrors: - - - message: '#^Class yii\\queue\\LogBehavior extends generic class yii\\base\\Behavior but does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: src/LogBehavior.php - - - - message: '#^Method yii\\queue\\LogBehavior\:\:events\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/LogBehavior.php - - - - message: '#^Method yii\\queue\\Queue\:\:unserializeMessage\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/Queue.php - - - - message: '#^Property yii\\queue\\Queue\:\:\$serializer type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/Queue.php - - - - message: '#^Class yii\\queue\\cli\\Action extends generic class yii\\base\\Action but does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: src/cli/Action.php - - - - message: '#^Instanceof between yii\\queue\\cli\\Queue and yii\\queue\\cli\\Queue will always evaluate to true\.$#' - identifier: instanceof.alwaysTrue - count: 1 - path: src/cli/Action.php - - - - message: '#^Parameter \#1 \$callback of function call_user_func_array expects callable\(\)\: mixed, array\{yii\\base\\Controller, ''ansiFormat''\} given\.$#' - identifier: argument.type - count: 1 - path: src/cli/Action.php - - - - message: '#^Property yii\\queue\\cli\\Action\:\:\$controller with generic class yii\\base\\Controller does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: src/cli/Action.php - - - - message: '#^Class yii\\queue\\cli\\Command extends generic class yii\\console\\Controller but does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: src/cli/Command.php - - - - message: '#^Method yii\\queue\\cli\\Command\:\:optionAliases\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/cli/Command.php - - - - message: '#^Parameter \#2 \$message of method yii\\queue\\cli\\Queue\:\:execute\(\) expects string, string\|false given\.$#' - identifier: argument.type - count: 1 - path: src/cli/Command.php - - - - message: '#^Property yii\\queue\\cli\\Command\:\:\$verboseConfig type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/cli/Command.php - - - - message: '#^Variable \$_ENV in isset\(\) always exists and is not nullable\.$#' - identifier: isset.variable - count: 1 - path: src/cli/Command.php - - - - message: '#^PHPDoc tag @property for property yii\\queue\\cli\\InfoAction\:\:\$controller contains generic class yii\\console\\Controller but does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: src/cli/InfoAction.php - - - - message: '#^Parameter \#1 \$type of static method yii\\BaseYii\\:\:createObject\(\) expects array\{class\?\: class\-string\, __class\?\: class\-string\\}\|\(callable\(\)\: mixed\)\|class\-string\, array\|string given\.$#' - identifier: argument.type - count: 1 - path: src/cli/Queue.php - - - - message: '#^Property yii\\queue\\cli\\Queue\:\:\$commandOptions type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/cli/Queue.php - - - - message: '#^Property yii\\queue\\cli\\Queue\:\:\$loopConfig type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/cli/Queue.php - - - - message: '#^Property yii\\queue\\cli\\Queue\:\:\$workerPid \(int\|null\) does not accept int\|false\.$#' - identifier: assign.propertyType - count: 1 - path: src/cli/Queue.php - - - - message: '#^Strict comparison using \=\=\= between null and null will always evaluate to true\.$#' - identifier: identical.alwaysTrue - count: 1 - path: src/cli/Queue.php - - - - message: '#^Unable to resolve the template type T in call to static method yii\\BaseYii\\:\:createObject\(\)$#' - identifier: argument.templateType - count: 1 - path: src/cli/Queue.php - - - - message: '#^Class yii\\queue\\cli\\VerboseBehavior extends generic class yii\\base\\Behavior but does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: src/cli/VerboseBehavior.php - - - - message: '#^Method yii\\queue\\cli\\VerboseBehavior\:\:events\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/cli/VerboseBehavior.php - - - - message: '#^Property yii\\queue\\cli\\VerboseBehavior\:\:\$command with generic class yii\\console\\Controller does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: src/cli/VerboseBehavior.php - - - - message: '#^Class yii\\queue\\closure\\Behavior extends generic class yii\\base\\Behavior but does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: src/closure/Behavior.php - - - - message: '#^Method yii\\queue\\closure\\Behavior\:\:events\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/closure/Behavior.php - - - - message: '#^Cannot access property \$data on array\\.$#' - identifier: property.nonObject - count: 2 - path: src/debug/Panel.php - - - - message: '#^Cannot call method getUrl\(\) on array\\.$#' - identifier: method.nonObject - count: 1 - path: src/debug/Panel.php - - - - message: '#^Method yii\\queue\\debug\\Panel\:\:getPushData\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/debug/Panel.php - - - - message: '#^PHPDoc tag @var for variable \$this has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 2 - path: src/debug/Panel.php - - - - message: '#^PHPDoc tag @var with type array\ is not subtype of native type \$this\(yii\\queue\\debug\\Panel\)\.$#' - identifier: varTag.nativeType - count: 2 - path: src/debug/Panel.php - - - - message: '#^Parameter \#3 \$context of method yii\\base\\View\:\:render\(\) expects object\|null, array\ given\.$#' - identifier: argument.type - count: 2 - path: src/debug/Panel.php - - - - message: '#^Property yii\\queue\\debug\\Panel\:\:\$jobs type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/debug/Panel.php - - - - message: '#^PHPDoc tag @var for variable \$jobs has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/debug/views/detail.php - - - - message: '#^Anonymous function never returns callable\(\)\: mixed so it can be removed from the return type\.$#' - identifier: return.unusedType - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^Cannot call method bind\(\) on Interop\\Queue\\Context\|null\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^Cannot call method createMessage\(\) on Interop\\Queue\\Context\|null\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^Cannot call method createProducer\(\) on Interop\\Queue\\Context\|null\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^Cannot call method createQueue\(\) on Interop\\Queue\\Context\|null\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^Cannot call method createTopic\(\) on Interop\\Queue\\Context\|null\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^Cannot call method declareQueue\(\) on Interop\\Queue\\Context\|null\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^Cannot call method declareTopic\(\) on Interop\\Queue\\Context\|null\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^Comparison operation "\>\=" between 8 and 7 is always true\.$#' - identifier: greaterOrEqual.alwaysTrue - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^PHPDoc tag @var with type Interop\\Amqp\\AmqpConnectionFactory is not subtype of native type Enqueue\\AmqpBunny\\AmqpConnectionFactory\|Enqueue\\AmqpExt\\AmqpConnectionFactory\|Enqueue\\AmqpLib\\AmqpConnectionFactory\.$#' - identifier: varTag.nativeType - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^Property yii\\queue\\amqp_interop\\Queue\:\:\$queueOptionalArguments type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^Property yii\\queue\\amqp_interop\\Queue\:\:\$setMessageHeaders type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/amqp_interop/Queue.php - - - - message: '#^Argument of an invalid type Pheanstalk\\Values\\TubeStats supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable - count: 1 - path: src/drivers/beanstalk/InfoAction.php - - - - message: '#^Method yii\\queue\\db\\Queue\:\:release\(\) has parameter \$payload with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/db/Queue.php - - - - message: '#^Method yii\\queue\\db\\Queue\:\:reserve\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/db/Queue.php - - - - message: '#^Property yii\\queue\\db\\Queue\:\:\$db type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/db/Queue.php - - - - message: '#^Property yii\\queue\\db\\Queue\:\:\$mutex type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/db/Queue.php - - - - message: '#^Access to an undefined property yii\\db\\Connection\:\:\$queue\.$#' - identifier: property.notFound - count: 12 - path: src/drivers/db/StatisticsProvider.php - - - - message: '#^PHPDoc tag @var with type yii\\db\\Connection is not subtype of native type \$this\(yii\\queue\\db\\StatisticsProvider\)\.$#' - identifier: varTag.nativeType - count: 4 - path: src/drivers/db/StatisticsProvider.php - - - - message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M161119140200Queue\:\:down\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:down\(\)$#' - identifier: method.childReturnType - count: 1 - path: src/drivers/db/migrations/M161119140200Queue.php - - - - message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M161119140200Queue\:\:up\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:up\(\)$#' - identifier: method.childReturnType - count: 1 - path: src/drivers/db/migrations/M161119140200Queue.php - - - - message: '#^Parameter \#3 \$type of method yii\\db\\Migration\:\:addColumn\(\) expects string, yii\\db\\ColumnSchemaBuilder given\.$#' - identifier: argument.type - count: 1 - path: src/drivers/db/migrations/M170307170300Later.php - - - - message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170307170300Later\:\:down\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:down\(\)$#' - identifier: method.childReturnType - count: 1 - path: src/drivers/db/migrations/M170307170300Later.php - - - - message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170307170300Later\:\:up\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:up\(\)$#' - identifier: method.childReturnType - count: 1 - path: src/drivers/db/migrations/M170307170300Later.php - - - - message: '#^Cannot access property \$driverName on array\|string\|yii\\db\\Connection\.$#' - identifier: property.nonObject - count: 2 - path: src/drivers/db/migrations/M170509001400Retry.php - - - - message: '#^Parameter \#3 \$type of method yii\\db\\Migration\:\:addColumn\(\) expects string, yii\\db\\ColumnSchemaBuilder given\.$#' - identifier: argument.type - count: 2 - path: src/drivers/db/migrations/M170509001400Retry.php - - - - message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170509001400Retry\:\:down\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:down\(\)$#' - identifier: method.childReturnType - count: 1 - path: src/drivers/db/migrations/M170509001400Retry.php - - - - message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170509001400Retry\:\:up\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:up\(\)$#' - identifier: method.childReturnType - count: 1 - path: src/drivers/db/migrations/M170509001400Retry.php - - - - message: '#^Parameter \#3 \$type of method yii\\db\\Migration\:\:addColumn\(\) expects string, yii\\db\\ColumnSchemaBuilder given\.$#' - identifier: argument.type - count: 1 - path: src/drivers/db/migrations/M170601155600Priority.php - - - - message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170601155600Priority\:\:down\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:down\(\)$#' - identifier: method.childReturnType - count: 1 - path: src/drivers/db/migrations/M170601155600Priority.php - - - - message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M170601155600Priority\:\:up\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:up\(\)$#' - identifier: method.childReturnType - count: 1 - path: src/drivers/db/migrations/M170601155600Priority.php - - - - message: '#^Cannot access property \$driverName on array\|string\|yii\\db\\Connection\.$#' - identifier: property.nonObject - count: 2 - path: src/drivers/db/migrations/M211218163000JobQueueSize.php - - - - message: '#^Parameter \#3 \$type of method yii\\db\\Migration\:\:alterColumn\(\) expects string, yii\\db\\ColumnSchemaBuilder given\.$#' - identifier: argument.type - count: 1 - path: src/drivers/db/migrations/M211218163000JobQueueSize.php - - - - message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M211218163000JobQueueSize\:\:down\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:down\(\)$#' - identifier: method.childReturnType - count: 1 - path: src/drivers/db/migrations/M211218163000JobQueueSize.php - - - - message: '#^Return type \(void\) of method yii\\queue\\db\\migrations\\M211218163000JobQueueSize\:\:up\(\) should be compatible with return type \(bool\) of method yii\\db\\MigrationInterface\:\:up\(\)$#' - identifier: method.childReturnType - count: 1 - path: src/drivers/db/migrations/M211218163000JobQueueSize.php - - - - message: '#^Offset ''lastId'' on array\{lastId\: int\} on left side of \?\? always exists and is not nullable\.$#' - identifier: nullCoalesce.offset - count: 1 - path: src/drivers/file/InfoAction.php - - - - message: '#^PHPDoc tag @var for variable \$data has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 3 - path: src/drivers/file/InfoAction.php - - - - message: '#^Argument of an invalid type list\\|false supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable - count: 1 - path: src/drivers/file/Queue.php - - - - message: '#^Method yii\\queue\\file\\Queue\:\:delete\(\) has parameter \$payload with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/file/Queue.php - - - - message: '#^Method yii\\queue\\file\\Queue\:\:reserve\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/file/Queue.php - - - - message: '#^Offset ''lastId'' on array\{lastId\: int, waiting\: array, delayed\: array\} in isset\(\) always exists and is not nullable\.$#' - identifier: isset.offset - count: 1 - path: src/drivers/file/Queue.php - - - - message: '#^PHPDoc tag @var for variable \$data has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 9 - path: src/drivers/file/Queue.php - - - - message: '#^PHPDoc tag @var for variable \$payload has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 5 - path: src/drivers/file/Queue.php - - - - message: '#^PHPDoc tag @var with type int\|string\|null is not subtype of native type int\.$#' - identifier: varTag.nativeType - count: 1 - path: src/drivers/file/Queue.php - - - - message: '#^Strict comparison using \!\=\= between false and string will always evaluate to true\.$#' - identifier: notIdentical.alwaysTrue - count: 1 - path: src/drivers/file/Queue.php - - - - message: '#^Variable \$data in PHPDoc tag @var does not match any variable in the foreach loop\: \$key, \$payload$#' - identifier: varTag.differentVariable - count: 1 - path: src/drivers/file/Queue.php - - - - message: '#^Method yii\\queue\\file\\StatisticsProvider\:\:getIndexData\(\) has no return type specified\.$#' - identifier: missingType.return - count: 1 - path: src/drivers/file/StatisticsProvider.php - - - - message: '#^Offset ''lastId'' on array\{lastId\: int\} in isset\(\) always exists and is not nullable\.$#' - identifier: isset.offset - count: 1 - path: src/drivers/file/StatisticsProvider.php - - - - message: '#^PHPDoc tag @var for variable \$data has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 3 - path: src/drivers/file/StatisticsProvider.php - - - - message: '#^Cannot call method get\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/InfoAction.php - - - - message: '#^Cannot call method llen\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/InfoAction.php - - - - message: '#^Cannot call method zcount\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 2 - path: src/drivers/redis/InfoAction.php - - - - message: '#^Cannot call method brpop\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method executeCommand\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method hdel\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 4 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method hexists\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 2 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method hget\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method hincrby\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method hset\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method incr\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method keys\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method lpush\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method lrem\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method rpop\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method rpush\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method set\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 3 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method zadd\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 2 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method zrem\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 3 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method zremrangebyscore\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method zrevrangebyscore\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Method yii\\queue\\redis\\Queue\:\:reserve\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^PHPDoc tag @var for variable \$result has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Property yii\\queue\\redis\\Queue\:\:\$redis type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/redis/Queue.php - - - - message: '#^Cannot call method get\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/StatisticsProvider.php - - - - message: '#^Cannot call method llen\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: src/drivers/redis/StatisticsProvider.php - - - - message: '#^Cannot call method zcount\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 2 - path: src/drivers/redis/StatisticsProvider.php - - - - message: '#^Method yii\\queue\\sqs\\Payload\:\:__construct\(\) has parameter \$response with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/sqs/Payload.php - - - - message: '#^Offset ''Messages'' on array\{Messages\: array\} on left side of \?\? always exists and is not nullable\.$#' - identifier: nullCoalesce.offset - count: 1 - path: src/drivers/sqs/Payload.php - - - - message: '#^PHPDoc tag @var for variable \$message has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 2 - path: src/drivers/sqs/Payload.php - - - - message: '#^Property yii\\queue\\sqs\\Payload\:\:\$messages type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/sqs/Payload.php - - - - message: '#^PHPDoc tag @var for variable \$response has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/sqs/Queue.php - - - - message: '#^Property yii\\queue\\sqs\\Queue\:\:\$serializer type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/sqs/Queue.php - - - - message: '#^Property yii\\queue\\sync\\Queue\:\:\$payloads type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/drivers/sync/Queue.php - - - - message: '#^Method yii\\queue\\gii\\Generator\:\:hints\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/gii/Generator.php - - - - message: '#^Method yii\\queue\\gii\\Generator\:\:requiredTemplates\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/gii/Generator.php - - - - message: '#^Method yii\\queue\\gii\\Generator\:\:stickyAttributes\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: src/gii/Generator.php - - - - message: '#^Parameter \#1 \$array of function array_unique expects array, list\\|false given\.$#' - identifier: argument.type - count: 1 - path: src/gii/Generator.php - - - - message: '#^Strict comparison using \=\=\= between false and string will always evaluate to false\.$#' - identifier: identical.alwaysFalse - count: 1 - path: src/gii/Generator.php - - - - message: '#^PHPDoc tag @var with type string\|false\|null is not subtype of native type string\|null\.$#' - identifier: varTag.nativeType - count: 1 - path: src/serializers/IgbinarySerializer.php - - - - message: '#^Unable to resolve the template type T in call to static method yii\\BaseYii\\:\:createObject\(\)$#' - identifier: argument.templateType - count: 1 - path: src/serializers/JsonSerializer.php - - - - message: '#^Parameter \#1 \$filename of function file_put_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/app/PriorityJob.php - - - - message: '#^Parameter \#1 \$filename of function file_put_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/app/RetryJob.php - - - - message: '#^Parameter \#1 \$filename of function file_put_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/app/SimpleJob.php - - - - message: '#^Class tests\\app\\benchmark\\Controller extends generic class yii\\console\\Controller but does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: tests/app/benchmark/Controller.php - - - - message: '#^Class tests\\app\\benchmark\\waiting\\Action extends generic class yii\\base\\Action but does not specify its types\: T$#' - identifier: missingType.generics - count: 1 - path: tests/app/benchmark/waiting/Action.php - - - - message: '#^Method tests\\app\\benchmark\\waiting\\Action\:\:calcResult\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/app/benchmark/waiting/Action.php - - - - message: '#^Method tests\\app\\benchmark\\waiting\\Action\:\:startWorkers\(\) has parameter \$command with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/app/benchmark/waiting/Action.php - - - - message: '#^PHPDoc tag @throws has invalid value \(\)\: Unexpected token "\\n ", expected type at offset 313 on line 8$#' - identifier: phpDoc.parseError - count: 1 - path: tests/app/benchmark/waiting/Action.php - - - - message: '#^PHPDoc tag @var with type array\ is not subtype of native type list\\.$#' - identifier: varTag.nativeType - count: 1 - path: tests/app/benchmark/waiting/Action.php - - - - message: '#^Parameter \#1 \$string of function trim expects string, string\|false given\.$#' - identifier: argument.type - count: 1 - path: tests/app/benchmark/waiting/Action.php - - - - message: '#^Parameter \#1 \.\.\.\$arg1 of function max expects non\-empty\-array, list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/app/benchmark/waiting/Action.php - - - - message: '#^Parameter \#1 \.\.\.\$arg1 of function min expects non\-empty\-array, list\ given\.$#' - identifier: argument.type - count: 1 - path: tests/app/benchmark/waiting/Action.php - - - - message: '#^Property tests\\app\\benchmark\\waiting\\Action\:\:\$modes type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/app/benchmark/waiting/Action.php - - - - message: '#^Access to constant ATTR_INIT_COMMAND on an unknown class Pdo\\Mysql\.$#' - identifier: class.notFound - count: 1 - path: tests/app/config/main.php - - - - message: '#^Comparison operation "\>\=" between \-1 and 0 is always false\.$#' - identifier: greaterOrEqual.alwaysFalse - count: 1 - path: tests/app/config/main.php - - - - message: '#^Argument of an invalid type list\\|false supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable - count: 1 - path: tests/closure/ClosureTest.php - - - - message: '#^Property tests\\closure\\ClosureTest\:\:\$_queue has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/closure/ClosureTest.php - - - - message: '#^Parameter \#2 \$username of class PDO constructor expects string\|null, string\|false given\.$#' - identifier: argument.type - count: 1 - path: tests/docker/php/mysql-lock.php - - - - message: '#^Parameter \#3 \$password of class PDO constructor expects string\|null, string\|false given\.$#' - identifier: argument.type - count: 1 - path: tests/docker/php/mysql-lock.php - - - - message: '#^Method tests\\drivers\\CliTestCase\:\:prepareCmd\(\) has parameter \$cmd with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/drivers/CliTestCase.php - - - - message: '#^Method tests\\drivers\\CliTestCase\:\:prepareCmd\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/drivers/CliTestCase.php - - - - message: '#^Method tests\\drivers\\CliTestCase\:\:runProcess\(\) has parameter \$cmd with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/drivers/CliTestCase.php - - - - message: '#^Method tests\\drivers\\CliTestCase\:\:startProcess\(\) has parameter \$cmd with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/drivers/CliTestCase.php - - - - message: '#^Parameter \#1 \$filename of function file_exists expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/CliTestCase.php - - - - message: '#^Parameter \#1 \$filename of function unlink expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/CliTestCase.php - - - - message: '#^Argument of an invalid type list\\|false supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable - count: 1 - path: tests/drivers/TestCase.php - - - - message: '#^Parameter \#1 \$filename of function file_exists expects string, bool\|string given\.$#' - identifier: argument.type - count: 2 - path: tests/drivers/TestCase.php - - - - message: '#^Parameter \#1 \$filename of function filemtime expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/TestCase.php - - - - message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' - identifier: argument.type - count: 2 - path: tests/drivers/TestCase.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$amqpInteropQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/amqp_interop/AmqpTestCase.php - - - - message: '#^Method tests\\drivers\\amqp_interop\\AmqpTestCase\:\:getConnectionConfig\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/drivers/amqp_interop/AmqpTestCase.php - - - - message: '#^Parameter \#1 \$name of method Enqueue\\AmqpLib\\AmqpContext\:\:createQueue\(\) expects string, string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/amqp_interop/AmqpTestCase.php - - - - message: '#^Parameter \#1 \$name of method Enqueue\\AmqpLib\\AmqpContext\:\:createTopic\(\) expects string, string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/amqp_interop/AmqpTestCase.php - - - - message: '#^Parameter \#2 \$port of class PhpAmqpLib\\Connection\\AMQPStreamConnection constructor expects int, int\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/amqp_interop/AmqpTestCase.php - - - - message: '#^Unable to resolve the template type T in call to static method yii\\BaseYii\\:\:createObject\(\)$#' - identifier: argument.templateType - count: 1 - path: tests/drivers/amqp_interop/AmqpTestCase.php - - - - message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 2 - path: tests/drivers/amqp_interop/QueueTest.php - - - - message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/amqp_interop/QueueTest.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$beanstalkQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/beanstalk/QueueTest.php - - - - message: '#^PHPDoc tag @throws has invalid value \(\)\: Unexpected token "\\n ", expected type at offset 81 on line 4$#' - identifier: phpDoc.parseError - count: 1 - path: tests/drivers/beanstalk/QueueTest.php - - - - message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/beanstalk/QueueTest.php - - - - message: '#^Parameter \#1 \$id of class Pheanstalk\\Values\\JobId constructor expects int\|Pheanstalk\\Contract\\JobIdInterface\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/beanstalk/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/beanstalk/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/beanstalk/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\beanstalk\\Queue\:\:remove\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/beanstalk/QueueTest.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$mysqlQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/db/MysqlQueueTest.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$pgsqlQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/db/PgsqlQueueTest.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$sqliteQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/db/SqliteQueueTest.php - - - - message: '#^Access to an undefined property yii\\queue\\Queue\:\:\$channel\.$#' - identifier: property.notFound - count: 2 - path: tests/drivers/db/TestCase.php - - - - message: '#^Access to an undefined property yii\\queue\\Queue\:\:\$db\.$#' - identifier: property.notFound - count: 3 - path: tests/drivers/db/TestCase.php - - - - message: '#^Access to an undefined property yii\\queue\\Queue\:\:\$messageHandler\.$#' - identifier: property.notFound - count: 3 - path: tests/drivers/db/TestCase.php - - - - message: '#^Access to an undefined property yii\\queue\\Queue\:\:\$tableName\.$#' - identifier: property.notFound - count: 3 - path: tests/drivers/db/TestCase.php - - - - message: '#^Call to an undefined method yii\\queue\\Queue\:\:getStatisticsProvider\(\)\.$#' - identifier: method.notFound - count: 4 - path: tests/drivers/db/TestCase.php - - - - message: '#^Call to an undefined method yii\\queue\\Queue\:\:run\(\)\.$#' - identifier: method.notFound - count: 2 - path: tests/drivers/db/TestCase.php - - - - message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 2 - path: tests/drivers/db/TestCase.php - - - - message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/db/TestCase.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/db/TestCase.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/db/TestCase.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$fileQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/file/QueueTest.php - - - - message: '#^Argument of an invalid type list\\|false supplied for foreach, only iterables are supported\.$#' - identifier: foreach.nonIterable - count: 1 - path: tests/drivers/file/QueueTest.php - - - - message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getDelayedCount\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/drivers/file/QueueTest.php - - - - message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getDoneCount\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/drivers/file/QueueTest.php - - - - message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getReservedCount\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/drivers/file/QueueTest.php - - - - message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getWaitingCount\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/drivers/file/QueueTest.php - - - - message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/file/QueueTest.php - - - - message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/file/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/file/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/file/QueueTest.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$gearmanQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/gearman/QueueTest.php - - - - message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/gearman/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/gearman/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/gearman/QueueTest.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$redisQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getDelayedCount\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getDoneCount\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getReservedCount\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Call to an undefined method yii\\queue\\interfaces\\StatisticsInterface\:\:getWaitingCount\(\)\.$#' - identifier: method.notFound - count: 1 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Cannot call method flushdb\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 1 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Cannot call method hexists\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 2 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Cannot call method keys\(\) on array\|string\|yii\\redis\\Connection\.$#' - identifier: method.nonObject - count: 2 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/redis/QueueTest.php - - - - message: '#^Method tests\\drivers\\redis\\RedisCrashMock\:\:executeCommand\(\) has parameter \$params with no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/drivers/redis/RedisCrashMock.php - - - - message: '#^Method tests\\drivers\\redis\\RedisCrashMock\:\:executeCommand\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/drivers/redis/RedisCrashMock.php - - - - message: '#^Property tests\\drivers\\redis\\RedisCrashMock\:\:\$crashOnCommand has no type specified\.$#' - identifier: missingType.property - count: 1 - path: tests/drivers/redis/RedisCrashMock.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$sqsFifoQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/sqs/FifoQueueTest.php - - - - message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/sqs/FifoQueueTest.php - - - - message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/sqs/FifoQueueTest.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$sqsQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/sqs/QueueTest.php - - - - message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/sqs/QueueTest.php - - - - message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/sqs/QueueTest.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$stompQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/stomp/QueueTest.php - - - - message: '#^Parameter \#1 \$filename of function file_get_contents expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/stomp/QueueTest.php - - - - message: '#^Parameter \#1 \$filename of method PHPUnit\\Framework\\Assert\:\:assertFileExists\(\) expects string, bool\|string given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/stomp/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/stomp/QueueTest.php - - - - message: '#^Access to an undefined property BaseApplication\|ConsoleApplication\|WebApplication\:\:\$syncQueue\.$#' - identifier: property.notFound - count: 1 - path: tests/drivers/sync/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isDone\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/sync/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isReserved\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/sync/QueueTest.php - - - - message: '#^Parameter \#1 \$id of method yii\\queue\\Queue\:\:isWaiting\(\) expects int\|string, int\|string\|null given\.$#' - identifier: argument.type - count: 1 - path: tests/drivers/sync/QueueTest.php - - - - message: '#^Method tests\\serializers\\TestCase\:\:providerSerialize\(\) return type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/serializers/TestCase.php - - - - message: '#^Property tests\\serializers\\TestObject\:\:\$bar type has no value type specified in iterable type array\.$#' - identifier: missingType.iterableValue - count: 1 - path: tests/serializers/TestCase.php diff --git a/phpstan.neon b/phpstan.neon deleted file mode 100644 index 9d8bf04ae8..0000000000 --- a/phpstan.neon +++ /dev/null @@ -1,20 +0,0 @@ -includes: - - vendor/phpstan/phpstan-phpunit/extension.neon - - phpstan-baseline.neon -parameters: - phpVersion: - min: 80300 - max: 80500 - level: 8 - dynamicConstantNames: - - YII_ENABLE_ERROR_HANDLER - - YII_DEBUG - bootstrapFiles: - - tests/bootstrap.php - scanFiles: - - support/ide-helper.php - excludePaths: - - vendor - paths: - - src - - tests From 7ebd09e69368e2fee7a36d874a5efec503f845b5 Mon Sep 17 00:00:00 2001 From: Moiseenko Date: Mon, 26 Jan 2026 22:58:03 +0300 Subject: [PATCH 3/3] Applying Yii2 coding standards --- .github/workflows/linter.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index bef245edf5..a5a8c2d533 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -25,3 +25,4 @@ jobs: uses: yiisoft/yii2-actions/.github/workflows/linter.yml@master with: directories: src/ tests/ + extensions: 'amqp'