Commit graph

40955 commits

Author SHA1 Message Date
Loïc Frémont
df658cdcc5 feat(php-grids): Use new with actions' helpers 2026-07-02 09:29:58 +02:00
Loïc Frémont
2b90aa9a44
feat(php-grids): Use withFields and withFilters (#19099)
Some checks failed
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
| Q               | A
|-----------------|-----
| Branch?         | php-grid-configuration
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations? | no <!-- don't forget to update the UPGRADE-*.md file
-->
| Related tickets | 
| License         | MIT

<!--
 - Bug fixes must be submitted against the 2.2 branch
 - Features and deprecations must be submitted against the 2.3 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->
2026-07-01 10:45:47 +02:00
Loïc Frémont
27a0873513 feat(php-grids): Use withFields and withFilters 2026-07-01 10:10:20 +02:00
Jan Góralski
459af9d526
feat(php-grids): Tests with Legacy grid config (#19091)
Some checks are pending
Continuous Integration (Minimal) / Static checks (push) Waiting to run
Continuous Integration (Minimal) / Tests (MariaDB) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Frontend (push) Blocked by required conditions
Continuous Integration (Minimal) / Packages (push) Blocked by required conditions
| Q               | A
|-----------------|-----
| Branch?         | php-grid-configuration
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations? | no <!-- don't forget to update the UPGRADE-*.md file
-->
| Related tickets | 
| License         | MIT

<!--
 - Bug fixes must be submitted against the 2.2 branch
 - Features and deprecations must be submitted against the 2.3 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->
2026-06-30 10:30:24 +02:00
Loïc Frémont
992bdd4bc4 feat(php-grids): Tests with Legacy grid config
# Conflicts:
#	.github/workflows/ci_e2e-mariadb.yaml
#	.github/workflows/matrix.json
2026-06-30 09:57:20 +02:00
Loïc Frémont
62fddeeb32
feat(php-grids): Use interfaces for grid names (#19097)
| Q               | A
|-----------------|-----
| Branch?         | php-grid-configuration
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations? | no <!-- don't forget to update the UPGRADE-*.md file
-->
| Related tickets | 
| License         | MIT

<!--
 - Bug fixes must be submitted against the 2.2 branch
 - Features and deprecations must be submitted against the 2.3 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->
2026-06-30 09:55:30 +02:00
Loïc Frémont
6735b86037 feat(php-grids): Use interfaces for grid names 2026-06-29 16:39:21 +02:00
mamazu
6218060046
Merge branch '2.3' into php-grid-configuration
Some checks failed
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
2026-06-26 12:30:20 +02:00
Grzegorz Sadowski
9b6799e2b8
[PayumBundle] Remove dependency on RequestConfiguration in PayumPayResponseProvider (#19082)
Some checks failed
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
| Q               | A
|-----------------|-----
| Branch?         | 2.3
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations?   | yes
| Related tickets | none
| License         | MIT

This PR removes the dependency of `PayumPayResponseProvider` on
`RequestConfiguration` (from `Sylius\Bundle\ResourceBundle\Controller`)
to retrieve the after-pay redirect route.

Previously, the redirect route used to build the Payum capture/authorize
token was read at runtime from the `_sylius` routing metadata via
`$requestConfiguration->getParameters()->get('redirect')`. This approach
was coupled to the ResourceBundle routing convention and required the
route definition to carry this information through the request
lifecycle.

---

### Changes

**`PayumPayResponseProvider`**
- Added two constructor parameters: `?string $afterPayUrlRoute` and
`array $afterPayUrlParameters`, injected at compile time.
- Removed the dynamic reading of
`$requestConfiguration->getParameters()->get('redirect')` at runtime.
- Simplified `provideTokenBasedOnPayment()` to use the injected
parameters directly, eliminating its `$redirectOptions` argument.

**`ShopBundle` configuration** (`Configuration.php`)
- Added two new `order_pay` configuration keys dedicated to Payum:
`payum_after_pay_route` (default: `sylius_shop_order_after_pay`) and
`payum_after_pay_route_parameters` (default: `[]`).
- These are intentionally separate from the existing `after_pay_route`
and `after_pay_route_parameters` keys, which are reserved for the
Payment Request flow and carry Payment Request-specific defaults (e.g.
`hash: paymentRequest.getHash()`).

**`ShopBundle` extension** (`SyliusShopExtension.php`)
- Exposes `%sylius_shop.order_pay.payum_after_pay_route%` and
`%sylius_shop.order_pay.payum_after_pay_route_parameters%` as container
parameters.

**`PayumBundle` service definition**
(`integrations/sylius_shop/order_pay/providers.php`)
- The `sylius_shop.provider.order_pay.pay_response.payum` service now
explicitly injects `%sylius_shop.order_pay.payum_after_pay_route%` and
`%sylius_shop.order_pay.payum_after_pay_route_parameters%` as
constructor arguments.

**`ShopBundle` routing** (`order.yml`)
- Removed the `_sylius.redirect` block from the `sylius_shop_order_pay`
route, which is no longer needed since the redirect route is now
resolved through the container parameter.

**`UPGRADE-2.3.md`**
- Documented the routing change and the migration path for projects that
customized the after-pay redirect route via the `_sylius` routing
metadata.

---

### Motivation

- Decouples `PayumPayResponseProvider` from the ResourceBundle
controller infrastructure (`RequestConfiguration`).
- Makes the after-pay redirect route an explicit, inspectable, and
overridable service configuration rather than an implicit routing
convention.
- Aligns with the ongoing effort to reduce reliance on
`Sylius\Bundle\ResourceBundle\Controller` in the PaymentRequest feature.

---

### Backward Compatibility

> ⚠️ The `_sylius: redirect:` block on `sylius_shop_order_pay` is
removed from the routing. Projects that relied on overriding this
routing parameter to customize the Payum after-pay redirect route should
now use the dedicated `sylius_shop` bundle configuration keys instead:
>
> ```yaml
> sylius_shop:
>     order_pay:
>         payum_after_pay_route: sylius_shop_order_after_pay
>         payum_after_pay_route_parameters: []
> ```
>
> Note: `after_pay_route` and `after_pay_route_parameters` are reserved
for the Payment Request flow and should not be used to configure the
Payum redirect.
>
> See `UPGRADE-2.3.md` for details.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Added a migration note explaining that Payum after-pay redirects no
longer rely on `_sylius: redirect:` routing metadata and how to
configure the replacement options.

* **New Features**
* Introduced `sylius_shop.order_pay.payum_after_pay_route` and
`sylius_shop.order_pay.payum_after_pay_route_parameters` to customize
the Payum after-pay redirect target and parameters.

* **Refactor**
* Removed the automatic redirect from `sylius_shop_order_pay`; Payum
after-pay redirect is now driven by the new configuration.

* **Tests**
* Added/updated PHPUnit coverage for the new configuration defaults and
Payum after-pay redirect behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-25 10:58:58 +02:00
Loïc Frémont
47d16d1026
Making grid assertions explicit (#19077)
Some checks failed
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
| Q               | A
|-----------------|-----
| Branch?         | 2.2
| Bug fix?        | no
| New feature?    | -
| BC breaks?      | -
| Deprecations?   | -
| Related tickets | -
| License         | MIT

Making the assertions explicit and fixing the issues found with this.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **Refactor**
* Reorganized column and filter ordering in admin grids for improved
layout consistency across Product, Promotion, Shipping Method, and
Catalog Promotion interfaces.
* Applied default filter values to archival filters to improve initial
filtering behavior.
  * Enhanced grid testing infrastructure for better comparison accuracy.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-23 14:33:45 +02:00
Grzegorz Sadowski
7a837f07ec
feat(php-grids): Remove abstract grid usage (#19070)
| Q               | A
|-----------------|-----
| Branch?         | php-grid-configuration
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations? | no <!-- don't forget to update the UPGRADE-*.md file
-->
| Related tickets | 
| License         | MIT

<!--
 - Bug fixes must be submitted against the 2.2 branch
 - Features and deprecations must be submitted against the 2.3 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->
2026-06-23 14:23:54 +02:00
Kamil Grygierzec
e6f3f56e01
[CS][DX] Refactor (#19086)
Some checks failed
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
This PR has been generated automatically.
For more details see
[refactor.yaml](/Sylius/Sylius/blob/2.3/.github/workflows/refactor.yaml).
2026-06-23 08:03:33 +02:00
Sylius Bot
7754061131 [CS][DX] Refactor 2026-06-23 03:06:15 +00:00
mamazu
5323a596cc Ordering the keys correctly 2026-06-23 03:28:47 +02:00
Francis Hilaire
368f9f5333
test: add tests for bundle config 2026-06-22 16:12:32 +02:00
Francis Hilaire
95c0bb039f
feat: make afterPay URL route and parameters readonly in PayumPayResponseProvider 2026-06-22 13:39:29 +02:00
Francis Hilaire
408d82790d
feat: update after-pay configuration to use dedicated Payum keys 2026-06-22 13:30:43 +02:00
Francis Hilaire
ce424aeaf2
docs: update UPGRADE-2.3.md to reflect changes in after-pay redirect route configuration 2026-06-22 12:57:36 +02:00
Francis Hilaire
2345d2fe7d
feat: enhance PayumPayResponseProvider to support afterPay URL parameters 2026-06-22 12:51:29 +02:00
Grzegorz Sadowski
827990dfe8
[Maintenance] Bump branch aliases to 2.3-dev (#19080)
Some checks are pending
Continuous Integration (Minimal) / Static checks (push) Waiting to run
Continuous Integration (Minimal) / Tests (MariaDB) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Frontend (push) Blocked by required conditions
Continuous Integration (Minimal) / Packages (push) Blocked by required conditions
| Q               | A
|-----------------|-----
| Branch?         | 2.3
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations?   | no
| Related tickets | 
| License         | MIT

<!--
 - Bug fixes must be submitted against the 2.2 branch
 - Features and deprecations must be submitted against the 2.3 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->
2026-06-22 10:35:15 +02:00
Grzegorz Sadowski
c76edec500
[Maintenance] Bump branch aliases to 2.3-dev 2026-06-22 10:34:28 +02:00
Kamil Grygierzec
c2659e1620
Remove old branches from refactor CI (#19079)
| Q               | A
|-----------------|-----
| Branch?         | 2.3 <!-- see the comment below -->
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations? | no <!-- don't forget to update the UPGRADE-*.md file
-->
| License         | MIT

<!--
 - Bug fixes must be submitted against the 2.2 branch
 - Features and deprecations must be submitted against the 2.3 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->
2026-06-22 08:45:47 +02:00
TheMilek
4e720e9777
Remove old branches from refactor CI 2026-06-22 08:44:55 +02:00
mamazu
ba889c63a1 Making grid assertions explicit 2026-06-20 01:12:08 +02:00
Loïc Frémont
c40a6ff968 feat(php-grids): Remove abstract grid usage 2026-06-19 17:43:05 +02:00
Kamil Grygierzec
0a6bb24f47
Replace deprecated Request::get() with explicit request bags (#19074)
Some checks failed
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
| Q               | A
|-----------------|-----
| Branch?         | 2.3
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations?   | no
| Related tickets | extracted from
https://github.com/Sylius/Sylius/pull/18803
| License         | MIT

Replaces deprecated `Request::get()` calls with explicit request bags
across templates, the shop product grid and the Payum AfterPay provider.

<!--
 - Bug fixes must be submitted against the 2.2 branch
 - Features and deprecations must be submitted against the 2.3 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **Bug Fixes**
  * Fixed payment request breadcrumb navigation
  * Fixed product taxon position update functionality
  * Fixed payment response handling
  * Fixed product grid sorting behavior
  * Fixed product review creation links
  * Fixed route identification in page layouts

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-19 13:03:26 +02:00
TheMilek
6af1ad28dd
Replace undefined request->get with existing request->query->get 2026-06-19 12:45:59 +02:00
TheMilek
f447232bd2
Fix app.request in grid and breadcrumbs 2026-06-19 12:43:49 +02:00
TheMilek
999f15aedc
Fix app.request in templates 2026-06-19 12:43:49 +02:00
Jan Góralski
8b81264118
[Validator] Use named arguments in constraint constructors (#19066)
Some checks are pending
Continuous Integration (Minimal) / Static checks (push) Waiting to run
Continuous Integration (Minimal) / Tests (MariaDB) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Frontend (push) Blocked by required conditions
Continuous Integration (Minimal) / Packages (push) Blocked by required conditions
| Q               | A
|-----------------|-----
| Branch?         | 2.3
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations?   | yes
| Related tickets | partially #9693, extracted from
https://github.com/Sylius/Sylius/pull/18803
| License         | MIT

Gives all Sylius validation constraints explicit constructors with named
arguments (marked with `#[HasNamedArguments]`) that initialize their
properties themselves, instead of relying on the base `Constraint` class
to evaluate an array of options (evaluating options in
`Constraint::__construct()` is deprecated since Symfony 7.4 and removed
in Symfony 8).

To avoid a BC break, the legacy array-options syntax is **kept working**
as a backward-compatibility layer (a leading `?array $options` argument)
and now triggers a **deprecation** instead of failing. It will be
removed in Sylius 3.0.

As a result:
  - It works on all supported Symfony versions (6.4, 7.4 and 8.0).
- Configuring constraints via XML / YAML / PHP attributes is **not
affected** - the validator loaders pass options as named arguments
automatically (no deprecation).
- Only **direct PHP instantiation** using the array syntax (`new
SomeConstraint(['message' => '...'])`) emits a deprecation; switch to
named arguments (`new SomeConstraint(message: '...')`).

Most of the constructor changes are cherry-picked from the `symfony-8`
branch (PR #18803) and adapted to preserve backward compatibility with
the deprecation layer. On top of that, this PR also covers several
remaining constraints with configurable options that were missed there.

Documented in `UPGRADE-2.3.md`.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

# Release Notes

* **New Features**
* Added Symfony validator named-arguments support across many constraint
classes for clearer configuration.

* **Deprecated**
* Array-based constraint configuration is deprecated (removal planned
for Sylius 3.0); use named arguments instead.
* Constraint message option/property names have been normalized to
`*Message` variants; legacy names remain temporarily but are deprecated.

* **Bug Fixes**
* Validator violation messages now consistently use the new `*Message`
properties.

* **Documentation**
* Updated upgrade guide with migration examples and the message option
rename mapping.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-18 15:49:21 +02:00
Grzegorz Sadowski
8b4f03687e
[Validator] Move constraint properties above the constructor 2026-06-18 15:20:13 +02:00
Grzegorz Sadowski
e0ad785f8b
[Validator] Order constraint constructor arguments consistently 2026-06-18 15:16:41 +02:00
Grzegorz Sadowski
180de9d403
[Validator] Use constructor property promotion for constraint messages 2026-06-18 15:09:40 +02:00
Grzegorz Sadowski
1dcd199c39
[Validator] Rename constraint message options to consistent *Message convention 2026-06-18 14:05:37 +02:00
Grzegorz Sadowski
6a7a20f3e5
[ApiBundle] Restore configurable shippingAddressNotFoundMessage in ChosenShippingMethodEligibility 2026-06-18 14:05:28 +02:00
Grzegorz Sadowski
3e3409d423
[Maintenance] Add UPGRADE-2.3 notes for doctrine-bundle 3 and DBAL 4 2026-06-18 14:05:26 +02:00
Grzegorz Sadowski
5897846cbd
[Maintenance] Add UPGRADE-2.3 note about named arguments in validation constraints 2026-06-18 14:04:56 +02:00
Grzegorz Sadowski
a167cac1db
[Validator] Keep backward-compatible array options with a deprecation 2026-06-18 14:04:30 +02:00
Grzegorz Sadowski
e603a8c63e
[Attribute] Cast min/max to int in Text and Select attribute validation 2026-06-18 14:04:29 +02:00
Grzegorz Sadowski
da25e534a8
[Validator] Cover remaining constraints with named arguments 2026-06-18 14:04:29 +02:00
TheMilek
1c4f891a8c
Fix validation constraints
(cherry picked from commit 4c92845830)
2026-06-18 14:04:29 +02:00
TheMilek
d8b1554952
[SF8] Use named arguments for Validator constraint constructor
(cherry picked from commit 2dbad7b21e)
2026-06-18 14:04:29 +02:00
Jan Góralski
f745ee5aa0
Allow doctrine/doctrine-bundle ^3.0 and doctrine/dbal ^4.0 (#19064)
Some checks are pending
Continuous Integration (Minimal) / Static checks (push) Waiting to run
Continuous Integration (Minimal) / Tests (MariaDB) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Frontend (push) Blocked by required conditions
Continuous Integration (Minimal) / Packages (push) Blocked by required conditions
| Q               | A
|-----------------|-----
| Branch?         | 2.3
| Bug fix?        | no
| New feature?    | yes
| BC breaks?      | no
| Deprecations? | no<!-- don't forget to update the UPGRADE-*.md file
-->
| Related tickets | duplicates
https://github.com/Sylius/Sylius/pull/18754, partially
https://github.com/Sylius/Sylius/issues/18760
| License         | MIT

This PR is a duplication of #18754 (which targets the `symfony-8`
branch). It reuses that PR's commits to bring the broadened Doctrine
support into `2.3`.

### What it does

Widens the supported Doctrine stack, **opt-in via `||`, no minimum is
bumped**:

  - `doctrine/doctrine-bundle` `^2.13 || ^3.0`
  - `doctrine/dbal` `^3.9 || ^4.0`
  - `doctrine/persistence` `^3.3 || ^4.0`
  - `doctrine/data-fixtures` `^1.7 || ^2.2` (dev)

Plus the compatibility work the newer stack requires:

- DBAL 3.x/4.x compatibility layers (platform detection,
`getSchemaManager()` → `createSchemaManager()`,
    `SqlitePlatform`/`SQLitePlatform`, `QueryBuilder::select()`);
- a custom `ObjectType` registered as `object` (the built-in `object`
type was removed in DBAL 4),
covering the only two `type="object"` mappings:
`PaymentSecurityToken.details` and `PaymentRequest.payload`;
- config updates: removed `auto_generate_proxy_classes` (gone in
DoctrineBundle 3), PSR-6 cache pools,
and forced `SEQUENCE` identity generation on PostgreSQL to keep the
schema backward compatible;
  - CI matrix entries to test both DoctrineBundle 2 and 3.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Added support for DoctrineBundle 3 and DBAL 4.
  * Added a custom DBAL “object” type to keep payment data compatible.
* **Documentation**
* Added Sylius 2.3 upgrade notes, including Doctrine cache pool
migration and PostgreSQL identity/sequence behavior.
* **Bug Fixes**
* Updated Doctrine ORM cache configuration to use Symfony cache pools
(production and test setups).
* Fixed timestamp handling to consistently store mutable `DateTime`
values where required.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-18 10:56:49 +02:00
Grzegorz Sadowski
8432f8edb4
[CoreBundle] Centralize all DQL platform checks in PlatformHelper 2026-06-18 10:09:06 +02:00
Grzegorz Sadowski
694c40d7ed
Document removed Doctrine cache provider services in UPGRADE-2.3 2026-06-18 06:51:30 +02:00
Grzegorz Sadowski
acc20b277a
Centralize SQLite platform detection, simplify platform name match, use LogicException 2026-06-18 06:26:24 +02:00
Grzegorz Sadowski
1ab6228718
[CoreBundle] Fix AtomicOrderPromotionsUsageModifier test for DBAL 4 LockMode enum 2026-06-18 06:16:31 +02:00
Grzegorz Sadowski
6dc94c9485
Update symfony.lock 2026-06-18 06:16:30 +02:00
Grzegorz Sadowski
8ff49b1faf
[Maintenance] Add UPGRADE-2.3 notes for doctrine-bundle 3 and DBAL 4 2026-06-18 06:16:28 +02:00
Grzegorz Sadowski
209016df32
[Payum] Preserve PaymentSecurityToken BC (revert details to untyped, use custom ObjectType) 2026-06-17 14:33:45 +02:00