From 8ced9834165ea610756cc47bd989eb9afee5991c Mon Sep 17 00:00:00 2001 From: Olha Livitchuk Date: Mon, 16 Feb 2026 19:28:48 +0100 Subject: [PATCH 1/4] FRW-10644 Bumped PHP stan --- composer.json | 2 +- phpstan.neon | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index 8bdf5ca2..921b6825 100644 --- a/composer.json +++ b/composer.json @@ -54,7 +54,7 @@ "cs-check": "phpcs -p -s --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml --ignore=/tests/app/ src/ tests/", "cs-fix": "phpcbf -p --standard=vendor/spryker/code-sniffer/Spryker/ruleset.xml --ignore=/tests/app/ src/ tests/", "stan": "phpstan analyse", - "stan-setup": "cp composer.json composer.backup && composer require --dev phpstan/phpstan:^1.0.0 && mv composer.backup composer.json", + "stan-setup": "cp composer.json composer.backup && composer require --dev phpstan/phpstan:^2.1.0 && mv composer.backup composer.json", "test": "codecept build && codecept run" }, "extra": { diff --git a/phpstan.neon b/phpstan.neon index b3cac781..9e6e4a36 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -2,15 +2,16 @@ parameters: level: 8 paths: - src/ - checkMissingIterableValueType: false excludePaths: - '*/templates/*' - - 'src/Spryker/Zed/EventBehavior/Persistence/Propel/AbstractSpyEventBehaviorEntityChange.php' - - 'src/Spryker/Zed/EventBehavior/Persistence/Propel/AbstractSpyEventBehaviorEntityChangeQuery.php' + - 'src/Spryker/Zed/EventBehavior/Persistence/Propel/AbstractSpyEventBehaviorEntityChange.php (?)' + - 'src/Spryker/Zed/EventBehavior/Persistence/Propel/AbstractSpyEventBehaviorEntityChangeQuery.php (?)' ignoreErrors: - '#Parameter \#1 \$plugins of method .+EventResourceQueryContainerManager::processResourceEvents\(\) expects .+ given.#' - '#Call to (static method|method) .+ on an unknown class Generated\\.+#' - '#Cannot call method offset\(\) on .+ModelCriteria\|null#' - '#Parameter \#1 \$clause of method .+\\ModelCriteria::where\(\) expects array\|literal-string, non-falsy-string given.#' + - + identifier: missingType.iterableValue bootstrapFiles: - tests/bootstrap.php From d84dc9633f5fa37070ec0bdcd8a83fcceafabbe1 Mon Sep 17 00:00:00 2001 From: Olha Livitchuk Date: Mon, 16 Feb 2026 19:33:23 +0100 Subject: [PATCH 2/4] FRW-10644 CI Fixes --- .github/workflows/ci.yml | 50 ++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7846c1e5..f8020507 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,7 +4,7 @@ env: APPLICATION_ENV: 'development' APPLICATION_STORE: 'DE' PROJECT: 'EventBehavior ' - DATABASE_VERSION: 10.2 + DATABASE_VERSION: mariadb-10.11 DATABASE_HOST: 127.0.0.1 DATABASE_PORT: 3306 DATABASE_NAME: eu-docker @@ -34,19 +34,17 @@ jobs: ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - - uses: getong/mariadb-action@v1.1 + - uses: shogo82148/actions-setup-mysql@v1 with: - host port: ${{ env.DATABASE_PORT }} - container port: ${{ env.DATABASE_PORT }} - character set server: ${{ env.DATABASE_CHARACTER_SET }} - collation server: ${{ env.DATABASE_COLLATE }} - mariadb version: ${{ env.DATABASE_VERSION }} - mysql database: ${{ env.DATABASE_NAME }} - mysql root password: ${{ env.DATABASE_ROOT_PASSWORD }} - mysql user: ${{ env.DATABASE_USERNAME }} - mysql password: ${{ env.DATABASE_PASSWORD }} + mysql-version: ${{ env.DATABASE_VERSION }} + root-password: ${{ env.DATABASE_ROOT_PASSWORD }} + user: ${{ env.DATABASE_USERNAME }} + password: ${{ env.DATABASE_PASSWORD }} + + - name: Create database + run: mysql -h ${{ env.DATABASE_HOST }} -u root -p${{ env.DATABASE_ROOT_PASSWORD }} -e 'CREATE DATABASE IF NOT EXISTS `${{ env.DATABASE_NAME }}` CHARACTER SET ${{ env.DATABASE_CHARACTER_SET }} COLLATE ${{ env.DATABASE_COLLATE }};' - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -60,9 +58,9 @@ jobs: - name: Get Composer Cache Directory id: composer-cache run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" + echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -95,19 +93,17 @@ jobs: ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - - uses: getong/mariadb-action@v1.1 + - uses: shogo82148/actions-setup-mysql@v1 with: - host port: ${{ env.DATABASE_PORT }} - container port: ${{ env.DATABASE_PORT }} - character set server: ${{ env.DATABASE_CHARACTER_SET }} - collation server: ${{ env.DATABASE_COLLATE }} - mariadb version: ${{ env.DATABASE_VERSION }} - mysql database: ${{ env.DATABASE_NAME }} - mysql root password: ${{ env.DATABASE_ROOT_PASSWORD }} - mysql user: ${{ env.DATABASE_USERNAME }} - mysql password: ${{ env.DATABASE_PASSWORD }} + mysql-version: ${{ env.DATABASE_VERSION }} + root-password: ${{ env.DATABASE_ROOT_PASSWORD }} + user: ${{ env.DATABASE_USERNAME }} + password: ${{ env.DATABASE_PASSWORD }} + + - name: Create database + run: mysql -h ${{ env.DATABASE_HOST }} -u root -p${{ env.DATABASE_ROOT_PASSWORD }} -e 'CREATE DATABASE IF NOT EXISTS `${{ env.DATABASE_NAME }}` CHARACTER SET ${{ env.DATABASE_CHARACTER_SET }} COLLATE ${{ env.DATABASE_COLLATE }};' - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -118,9 +114,9 @@ jobs: - name: Get Composer Cache Directory id: composer-cache run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" + echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} From bb5cda8d36bf177f530ed8420740f38d09ad801d Mon Sep 17 00:00:00 2001 From: Olha Livitchuk Date: Mon, 16 Feb 2026 19:37:45 +0100 Subject: [PATCH 3/4] FRW-10644 CI Fixes --- .../EventDispatcher/EventBehaviorEventDispatcherPlugin.php | 1 - .../Business/Model/AbstractEventResourcePluginIterator.php | 2 +- .../EventBehavior/Business/Model/EventEntityTransferFilter.php | 2 +- .../EventBehavior/Communication/Console/EventTriggerConsole.php | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Spryker/Glue/EventBehavior/Plugin/EventDispatcher/EventBehaviorEventDispatcherPlugin.php b/src/Spryker/Glue/EventBehavior/Plugin/EventDispatcher/EventBehaviorEventDispatcherPlugin.php index 42263356..449e30c1 100644 --- a/src/Spryker/Glue/EventBehavior/Plugin/EventDispatcher/EventBehaviorEventDispatcherPlugin.php +++ b/src/Spryker/Glue/EventBehavior/Plugin/EventDispatcher/EventBehaviorEventDispatcherPlugin.php @@ -14,7 +14,6 @@ use Symfony\Component\HttpKernel\KernelEvents; /** - * @method \Spryker\Glue\EventBehavior\EventBehaviorDependencyFactory getFactory() * @method \Spryker\Zed\EventBehavior\Business\EventBehaviorFacadeInterface getFacade() */ class EventBehaviorEventDispatcherPlugin extends AbstractPlugin implements EventDispatcherPluginInterface diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/AbstractEventResourcePluginIterator.php b/src/Spryker/Zed/EventBehavior/Business/Model/AbstractEventResourcePluginIterator.php index 0008b280..e02cb3ee 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/AbstractEventResourcePluginIterator.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/AbstractEventResourcePluginIterator.php @@ -88,7 +88,7 @@ public function key(): int */ public function valid(): bool { - return is_array($this->current) && $this->current !== []; + return is_array($this->current) && $this->current !== []; // @phpstan-ignore function.alreadyNarrowedType } /** diff --git a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php index 1f094b8a..7302e59f 100644 --- a/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php +++ b/src/Spryker/Zed/EventBehavior/Business/Model/EventEntityTransferFilter.php @@ -47,7 +47,7 @@ public function getEventTransferForeignKeys(array $eventTransfers, $foreignKeyCo } $value = $eventTransfer->getForeignKeys()[$foreignKeyColumnName]; - if ($value !== null) { + if ($value !== null) { // @phpstan-ignore notIdentical.alwaysTrue $foreignKeys[] = $value; } } diff --git a/src/Spryker/Zed/EventBehavior/Communication/Console/EventTriggerConsole.php b/src/Spryker/Zed/EventBehavior/Communication/Console/EventTriggerConsole.php index c075bfc4..aa4c21ab 100644 --- a/src/Spryker/Zed/EventBehavior/Communication/Console/EventTriggerConsole.php +++ b/src/Spryker/Zed/EventBehavior/Communication/Console/EventTriggerConsole.php @@ -98,7 +98,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int if ($input->getOption(static::RESOURCE_IDS_OPTION)) { /** @var string $idsString */ $idsString = $input->getOption(static::RESOURCE_IDS_OPTION); - /** @var array $resourcesIds */ + /** @var list $resourcesIds */ $resourcesIds = explode(',', $idsString); } From fda5cc235dbbc37c8945abff8856d21b15bfa4b5 Mon Sep 17 00:00:00 2001 From: Olha Livitchuk Date: Mon, 16 Feb 2026 19:41:04 +0100 Subject: [PATCH 4/4] FRW-10644 CI Fixes --- .../Communication/Console/EventTriggerConsole.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Spryker/Zed/EventBehavior/Communication/Console/EventTriggerConsole.php b/src/Spryker/Zed/EventBehavior/Communication/Console/EventTriggerConsole.php index aa4c21ab..0581d266 100644 --- a/src/Spryker/Zed/EventBehavior/Communication/Console/EventTriggerConsole.php +++ b/src/Spryker/Zed/EventBehavior/Communication/Console/EventTriggerConsole.php @@ -98,8 +98,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int if ($input->getOption(static::RESOURCE_IDS_OPTION)) { /** @var string $idsString */ $idsString = $input->getOption(static::RESOURCE_IDS_OPTION); - /** @var list $resourcesIds */ - $resourcesIds = explode(',', $idsString); + $resourcesIds = array_map('intval', explode(',', $idsString)); } $this->getFacade()->executeResolvedPluginsBySources($resources, $resourcesIds);