mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-14 17:10:53 +00:00
170 lines
6.8 KiB
Markdown
170 lines
6.8 KiB
Markdown
# UPGRADE FROM `1.13` TO `2.0`
|
|
|
|
* API Platform has dropped `DataProviders` and `DataPersisters` in favor of `Providers` and `Processors`, respectively.
|
|
Due to this change, Sylius custom `DataProviders` and `DataPersisters` have been adapted to the new API Platform interfaces
|
|
and their namespaced have been changed to `StateProvider` and `StateProcessor` respectively:
|
|
- `Sylius\Bundle\ApiBundle\DataPersister\*DataPersister` => `Sylius\Bundle\ApiBundle\StateProcessor\*Processor`
|
|
- `Sylius\Bundle\ApiBundle\DataProvider\*DataProvider` => `Sylius\Bundle\ApiBundle\StateProvider\*Provider`
|
|
|
|
* API Platform has also dropped `DataTransformers` in favor of which `some of them` have been refactored into `SerializerContextBuilders` as follows:
|
|
- `Sylius\Bundle\ApiBundle\DataTransformer\ChannelCodeAwareInputCommandDataTransformer` => `Sylius\Bundle\ApiBundle\SerializerContextBuilder\ChannelCodeAwareContextBuilder`
|
|
- `Sylius\Bundle\ApiBundle\DataTransformer\LocaleCodeAwareInputCommandDataTransformer` => `Sylius\Bundle\ApiBundle\SerializerContextBuilder\LocaleCodeAwareContextBuilder`
|
|
- `Sylius\Bundle\ApiBundle\DataTransformer\LoggedInCustomerEmailIfNotSetAwareCommandDataTransformer` => `Sylius\Bundle\ApiBundle\SerializerContextBuilder\LoggedInCustomerEmailIfNotSetAwareContextBuilder`
|
|
- `Sylius\Bundle\ApiBundle\DataTransformer\LoggedInShopUserIdAwareCommandDataTransformer` => `Sylius\Bundle\ApiBundle\SerializerContextBuilder\ChannelCodeAwareContextBuilder`
|
|
|
|
* The constructor of `Sylius\Bundle\ApiBundle\Command\Account\RegisterShopUser` has been changed:
|
|
```php
|
|
public function __construct(
|
|
- public string $firstName,
|
|
- public string $lastName,
|
|
- public string $email,
|
|
- public string $password,
|
|
- public bool $subscribedToNewsletter = false,
|
|
+ protected string $firstName,
|
|
+ protected string $lastName,
|
|
+ protected string $email,
|
|
+ protected string $password,
|
|
+ protected ?string $channelCode,
|
|
+ protected ?string $localeCode,
|
|
+ protected bool $subscribedToNewsletter = false,
|
|
) {
|
|
}
|
|
```
|
|
|
|
* The constructor of `Sylius\Bundle\ApiBundle\Command\Account\RequestResetPasswordToken` has been changed:
|
|
```php
|
|
public function __construct(
|
|
- public string $email,
|
|
+ protected string $email,
|
|
+ protected ?string $channelCode,
|
|
+ protected ?string $localeCode,
|
|
) {
|
|
}
|
|
```
|
|
|
|
* The constructor of `Sylius\Bundle\ApiBundle\Command\SendContactRequest` has been changed:
|
|
```php
|
|
public function __construct(
|
|
- private ?string $email = null,
|
|
- private ?string $message = null,
|
|
+ protected ?string $channelCode,
|
|
+ protected ?string $localeCode,
|
|
+ protected ?string $email = null,
|
|
+ protected ?string $message = null,
|
|
) {
|
|
}
|
|
```
|
|
|
|
* The constructor of `Sylius\Bundle\ApiBundle\Command\Account\VerifyShopUser` has been changed:
|
|
```php
|
|
public function __construct(
|
|
- public string $token,
|
|
- private ?string $localeCode = null,
|
|
- private ?string $channelCode = null,
|
|
+ protected string $token,
|
|
+ protected string $channelCode,
|
|
+ protected string $localeCode,
|
|
) {
|
|
}
|
|
```
|
|
|
|
* The constructor of `Sylius\Bundle\ApiBundle\Command\Account\ChangeShopUserPassword` has been changed:
|
|
```php
|
|
public function __construct(
|
|
- public ?string $newPassword,
|
|
- public ?string $confirmNewPassword,
|
|
- public ?string $currentPassword,
|
|
+ protected mixed $shopUserId,
|
|
+ protected string $newPassword,
|
|
+ protected string $confirmNewPassword,
|
|
+ protected string $currentPassword,
|
|
) {
|
|
}
|
|
```
|
|
|
|
* The constructor of `Sylius\Bundle\ApiBundle\Command\Account\RequestShopUserVerification` has been created:
|
|
```php
|
|
public function __construct(
|
|
+ protected string|int|null $shopUserId,
|
|
+ protected ?string $channelCode,
|
|
+ protected ?string $localeCode,
|
|
) {
|
|
}
|
|
```
|
|
|
|
All the `setter` methods have been removed from the commands above and also there are some new `getter` methods accordingly to arguments visibility changes.
|
|
|
|
* The parameter type and order of the `Sylius\Bundle\ApiBundle\Controller\UploadAvatarImageAction::__construct` has been changed:
|
|
```php
|
|
public function __construct(
|
|
private FactoryInterface $avatarImageFactory,
|
|
private AvatarImageRepositoryInterface $avatarImageRepository,
|
|
- private ImageUploaderInterface $imageUploader,
|
|
- private IriConverterInterface $iriConverter,
|
|
+ private RepositoryInterface $adminUserRepository,
|
|
+ private ImageUploaderInterface $imageUploader,
|
|
)
|
|
```
|
|
|
|
* Updated API routes related to avatar management:
|
|
|
|
Previous Routes:
|
|
* `'GET' - /api/v2/admin/avatar-images/{id}`
|
|
* `'POST' - /api/v2/admin/avatar-images`
|
|
* `'DELETE' - /api/v2/admin/avatar-images/{id}`
|
|
|
|
New Routes:
|
|
* `'GET' - /api/v2/admin/administrators/{id}/avatar-image`
|
|
* `'POST' - /api/v2/admin/administrators/{id}/avatar-image`
|
|
* `'DELETE' - /api/v2/admin/administrators/{id}/avatar-image`
|
|
|
|
* Updated API routes related to shop user management:
|
|
|
|
Previous Routes:
|
|
* `'POST' - /api/v2/shop/reset-password-requests`
|
|
* `'PATCH' - /api/v2/shop/reset-password-requests/{resetPasswordToken}`
|
|
* `'POST' - /api/v2/shop/account-verification-requests`
|
|
* `'PATCH - /api/v2/shop/account-verification-requests/{token}`
|
|
|
|
New Routes:
|
|
* `'POST' - /api/v2/shop/reset-password`
|
|
* `'PATCH' - /api/v2/shop/reset-password/{resetPasswordToken}`
|
|
* `'POST' - /api/v2/shop/verify-shop-user`
|
|
* `'PATCH' - /api/v2/shop/verify-shop-user/{token}`
|
|
|
|
* Updated API routes related to admin user management:
|
|
|
|
Previous Routes:
|
|
* `'POST' - /api/v2/admin/reset-password-requests`
|
|
* `'PATCH' - /api/v2/admin/reset-password-requests/{resetPasswordToken}`
|
|
|
|
New Routes:
|
|
* `'POST' - /api/v2/admin/reset-password`
|
|
* `'PATCH' - /api/v2/admin/reset-password/{resetPasswordToken}`
|
|
|
|
* The `getCurrentPrefix` method has been removed from the `Sylius\Bundle\ApiBundle\Provider\PathPrefixProviderInterface`.
|
|
|
|
* The `Sylius\Bundle\ApiBundle\Provider\PathPrefixProvider` constructor has been changed due to refactor.
|
|
Now, we provide the list of possible prefixes that we check in this service. This list can be set under
|
|
the parameter: `sylius.api_path_prefixes`.
|
|
|
|
```diff
|
|
public function __construct(
|
|
- private UserContextInterface $userContext,
|
|
private string $apiRoute,
|
|
+ private array $pathPrefixes,
|
|
) {
|
|
...
|
|
}
|
|
```
|
|
|
|
1. There has been introduced a new parameter:
|
|
|
|
```yaml
|
|
sylius_api:
|
|
non_archived_classes:
|
|
- "%sylius.model.shipping_method.class%"
|
|
- "%sylius.model.promotion.class%"
|
|
```
|
|
|
|
That avoids duplication of logic and is used in one `Sylius\Bundle\ApiBundle\Doctrine\ORM\QueryExtension\Common\NonArchivedExtension` rather than dedicated extensions for each entity.
|