mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-15 09:30:58 +00:00
90 lines
3.9 KiB
Markdown
90 lines
3.9 KiB
Markdown
# UPGRADE FROM `2.2.6` TO `2.2.7`
|
|
|
|
## Constructor Signature Changes
|
|
|
|
1. The constructor of `Sylius\Bundle\ApiBundle\ApiPlatform\Routing\IriConverter` has been extended with an optional `ApiPlatform\Metadata\ResourceClassResolverInterface` argument.
|
|
|
|
```php
|
|
public function __construct(
|
|
IriConverterInterface $decoratedIriConverter,
|
|
PathPrefixProviderInterface $pathPrefixProvider,
|
|
OperationResolverInterface $operationResolver,
|
|
RouterInterface $router,
|
|
+ ?ResourceClassResolverInterface $resourceClassResolver = null,
|
|
)
|
|
```
|
|
|
|
## Bahavior changes
|
|
|
|
1. The `LiveComponentTagPass` and `TwigComponentTagPass` in `SyliusUiBundle` were registered with a priority of `500`,
|
|
which caused them to run before Symfony's autoconfiguration passes (priority `100`).
|
|
As a result, services tagged via `#[AutoconfigureTag]` or `registerForAutoconfiguration()` with the `sylius.twig_component`
|
|
or `sylius.live_component.*` tag did not receive the `twig.component` tag.
|
|
The priority has been lowered to `50` to ensure Symfony's autoconfiguration runs first.
|
|
|
|
# UPGRADE FROM `2.1` TO `2.2`
|
|
|
|
## Telemetry
|
|
|
|
Sylius 2.2.0 introduces anonymous telemetry to help us understand how Sylius is used and improve the platform.
|
|
|
|
**What data is collected:**
|
|
- Anonymous installation ID (hashed, non-reversible)
|
|
- Sylius and PHP versions, default locale
|
|
- Aggregated statistics as segments (broad ranges, not exact values):
|
|
- Customers/products/variants count (e.g., "1K-10K", "100K-1M")
|
|
- GMV and AOV ranges per month (e.g., "100K-500K", "50-100")
|
|
|
|
**No sensitive data is ever collected** - no customer information, no order details, no personal data.
|
|
|
|
**Configuration:**
|
|
|
|
Telemetry is enabled by default and uses a default salt for hashing the installation ID.
|
|
|
|
To disable telemetry, set the following environment variable in your `.env` file:
|
|
|
|
```dotenv
|
|
SYLIUS_TELEMETRY_ENABLED=0
|
|
```
|
|
|
|
To change the salt, set the `SYLIUS_TELEMETRY_SALT` environment variable:
|
|
|
|
```dotenv
|
|
SYLIUS_TELEMETRY_SALT=your-custom-salt
|
|
```
|
|
|
|
## Deprecations
|
|
|
|
1. Not injecting a `tagged_iterator` with the tag `sylius_shop.modifier.address_form_values` into the constructor of `Sylius\Bundle\ShopBundle\Twig\Component\Checkout\Address\FormComponent` is deprecated since Sylius 2.2 and will be required in Sylius 3.0.
|
|
|
|
This change enables extending the checkout address form with custom fields or logic by registering services tagged with `sylius_shop.modifier.address_form_values`, which implement the `AddressFormValuesModifierInterface`.
|
|
|
|
```php
|
|
public function __construct(
|
|
OrderRepositoryInterface $repository,
|
|
FormFactoryInterface $formFactory,
|
|
string $resourceClass,
|
|
string $formClass,
|
|
protected readonly CustomerContextInterface $customerContext,
|
|
protected readonly UserRepositoryInterface $shopUserRepository,
|
|
protected readonly AddressRepositoryInterface $addressRepository,
|
|
+ protected readonly ?iterable $addressFormValuesModifiers = null,
|
|
)
|
|
```
|
|
|
|
1. Direct usage of `loader.svg` and `loader.gif` assets is deprecated.
|
|
Use `@SyliusAdmin/shared/helper/loader.html.twig` or `@SyliusShop/shared/macro/loader.html.twig` instead.
|
|
|
|
1. The `Sylius\Bundle\ReviewBundle\Updater\ReviewableRatingUpdaterInterface::updateFromReview()` method has been deprecated and will be removed in Sylius 3.0. Use state machine mechanism implemented by Symfony Workflow instead.
|
|
|
|
## Admin UI
|
|
|
|
1. A new `modal-portal.js` script has been added to `AdminBundle`.
|
|
It moves Bootstrap modal elements to `<body>` before they are displayed,
|
|
preventing them from being rendered behind the Bootstrap backdrop when nested inside a CSS stacking context (e.g. the sticky `.page-header`).
|
|
|
|
## Translations
|
|
|
|
1. The `TranslationLocaleProvider` now ensures that the default locale (configured as `locale` in `config/parameters.yaml`)
|
|
is always placed at the beginning of the returned locales array.
|
|
Other locales remain in the same order as returned by the repository.
|