Skip to content

feat: support Sylius 2.3 and Symfony 8 - #9

Merged
JDCyllene merged 10 commits into
CylleneDigital:mainfrom
JDCyllene:feat/sylius-2-3
Oct 7, 2026
Merged

JDCyllene merged 10 commits into
CylleneDigital:mainfrom
JDCyllene:feat/sylius-2-3

Conversation

@JDCyllene

Copy link
Copy Markdown
Member

What this pull request does

Adds Sylius 2.3 and Symfony 8 support while keeping Sylius 2.1 / 2.2 and Symfony 6.4 / 7.4. The public contract does not move: this is meant for v1.1.0.

  • Services in PHP. Symfony 8 no longer loads XML service definitions. Same ids, tags and arguments; the gateway-factory tag attribute becomes gateway_factory, the key the XML loader already normalised it to.
  • Behat 4. Required by Symfony 8, it only reads PHP configuration and step attributes: behat.dist.php, #[Given] steps, Sylius suites no longer imported. The abandoned friends-of-behat Mink forks give way to behat/mink.
  • One Sylius signature change. Sylius 2.3 passes a Request instead of a RequestConfiguration to HttpResponseProviderInterface (UPGRADE-2.3, item 4). AxeptaHttpResponseProvider types that unused argument as object, which satisfies both signatures.
  • CI. Sylius 2.3 and Symfony 8 join the matrix (23 jobs). Behat 3 and Doctrine ORM below 3.7 are kept before 2.3. Runner and third-party actions are pinned, workflows get contents: read.
  • Also. homepage, authors and support in composer.json; the payment redirect page follows the browser colour scheme; the development stack runs PHP 8.4 and Node 22; the README banner matches the other Cyllene plugins; the docs announce the new matrix.

Verified locally: unit (130), integration and functional (80), Behat (9 scenarios), PHPStan, ECS and lint:container green on Sylius 2.3.0 / Symfony 8.1 / PHP 8.4, and on Sylius 2.1.16 / Symfony 6.4 / Behat 3. The back office was checked in dark mode on Sylius 2.3.

Points to watch

  • Tests pass (vendor/bin/phpunit, vendor/bin/behat --strict)
  • PHPStan and ECS are green
  • UPGRADE.md is up to date if the public contract changes
  • No real key, signature or merchant identifier appears in the code, the tests or this
    description

If the pull request touches the protocol or the cryptography

It does not: the protocol layer and the cryptography are unchanged.

Symfony 8 no longer loads the XML configuration format. Service ids, tags and
arguments are unchanged; the tag attribute gateway-factory becomes
gateway_factory, the key the XML loader already normalised it to.
Behat 4, the version Symfony 8 requires, only reads PHP configuration and no
longer reads annotations. The Sylius suites are no longer imported: 2.3 ships
them in PHP only, and the plugin suites only use the Sylius contexts.
Sylius 2.3 passes a Request instead of a RequestConfiguration to the HTTP
response providers: the Axepta provider types that argument as object, which
satisfies both signatures since it never reads it.

The abandoned friends-of-behat Mink forks give way to behat/mink and
behat/mink-browserkit-driver.
…y actions

Before Sylius 2.3 the matrix keeps Behat 3 and Doctrine ORM below 3.7. PHPStan
and ECS only run on the primary job, now Sylius 2.3 / PHP 8.4 / Symfony 7.4.
@JDCyllene
JDCyllene requested a review from a team as a code owner October 7, 2026 16:19
@JDCyllene
JDCyllene merged commit fa15ed8 into CylleneDigital:main Oct 7, 2026
25 checks passed
@JDCyllene
JDCyllene deleted the feat/sylius-2-3 branch October 7, 2026 16:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant