This PR was merged into the 2.0 branch. Discussion ---------- | Q | A |-----------------|----- | Branch? | 2.0 | Bug fix? | no | New feature? | no | BC breaks? | yes | Deprecations? | no<!-- don't forget to update the UPGRADE-*.md file --> | Related tickets | fixes https://github.com/Sylius/Sylius/pull/17309#pullrequestreview-2388183159 | License | MIT <!-- - Bug fixes must be submitted against the 1.13 branch - Features and deprecations must be submitted against the 1.14 branch - Features, removing deprecations and BC breaks must be submitted against the 2.0 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 --> Commits ------- [API] Remove legacy_error_handling and serialization_groups configuration parameters
10 KiB
UPGRADE FROM 1.14 TO 2.0
Codebase
-
The following classes were removed:
Sylius\Bundle\ApiBundle\EventListener\PostgreSQLDriverExceptionListener
-
The following services were removed:
sylius.listener.api_postgresql_driver_exception_listener
-
Non-prefix serialization groups in Sylius resources have been removed. If you have extended any of them, you must prefix them with
sylius:, for example:- #[Groups(['admin:product:index'])] + #[Groups(['sylius:admin:product:index'])] -
API Platform has dropped
DataProvidersandDataPersistersin favor ofProvidersandProcessors, respectively. Due to this change, Sylius customDataProvidersandDataPersistershave been adapted to the new API Platform interfaces and their namespaced have been changed toStateProviderandStateProcessorrespectively:
Sylius\Bundle\ApiBundle\DataPersister\*DataPersister=>Sylius\Bundle\ApiBundle\StateProcessor\*ProcessorSylius\Bundle\ApiBundle\DataProvider\*DataProvider=>Sylius\Bundle\ApiBundle\StateProvider\*Provider
- API Platform has also dropped
DataTransformersin favor of whichsome of themhave been refactored intoSerializerContextBuildersas follows:
Sylius\Bundle\ApiBundle\DataTransformer\ChannelCodeAwareInputCommandDataTransformer=>Sylius\Bundle\ApiBundle\SerializerContextBuilder\ChannelCodeAwareContextBuilderSylius\Bundle\ApiBundle\DataTransformer\LocaleCodeAwareInputCommandDataTransformer=>Sylius\Bundle\ApiBundle\SerializerContextBuilder\LocaleCodeAwareContextBuilderSylius\Bundle\ApiBundle\DataTransformer\LoggedInCustomerEmailIfNotSetAwareCommandDataTransformer=>Sylius\Bundle\ApiBundle\SerializerContextBuilder\LoggedInCustomerEmailIfNotSetAwareContextBuilderSylius\Bundle\ApiBundle\DataTransformer\LoggedInShopUserIdAwareCommandDataTransformer=>Sylius\Bundle\ApiBundle\SerializerContextBuilder\ChannelCodeAwareContextBuilder
- The constructor of
Sylius\Bundle\ApiBundle\Command\Account\RegisterShopUserhas been changed:
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\RequestResetPasswordTokenhas been changed:
public function __construct(
- public string $email,
+ protected string $email,
+ protected ?string $channelCode,
+ protected ?string $localeCode,
) {
}
- The constructor of
Sylius\Bundle\ApiBundle\Command\SendContactRequesthas been changed:
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\VerifyShopUserhas been changed:
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\ChangeShopUserPasswordhas been changed:
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\RequestShopUserVerificationhas been created:
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::__constructhas been changed:
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
getCurrentPrefixmethod has been removed from theSylius\Bundle\ApiBundle\Provider\PathPrefixProviderInterface. -
The
Sylius\Bundle\ApiBundle\Provider\PathPrefixProviderconstructor 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.public function __construct( - private UserContextInterface $userContext, private string $apiRoute, + private array $pathPrefixes, ) { ... } -
The signature of method
applyToCollectionof the following classes has been changed:Sylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\AcceptedProductReviewsExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\AddressesExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\AvailableProductAssociationsInProductCollectionExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\CountryCollectionExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\CurrencyCollectionExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\EnabledProductVariantsExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\HideArchivedShippingMethodExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\LocaleCollectionExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\OrdersByChannelExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\OrdersByLoggedInUserExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\ProductsByChannelAndLocaleCodeExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\ProductsByTaxonExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\ProductsWithEnableFlagExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\ProductsWithEnableFlagExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\RestrictingFilterEagerLoadingExtensionSylius\Bundle\ApiBundle\Doctrine\QueryCollectionExtension\TaxonCollectionExtension
public function applyToCollection(
QueryBuilder $queryBuilder,
QueryNameGeneratorInterface $queryNameGenerator,
string $resourceClass,
- string $operationName = null,
+ \ApiPlatform\Metadata\Operation $operation = null,
array $context = [],
): void;
-
The
Sylius\Bundle\ApiBundle\OpenApi\Documentation\PathHiderDocumentationModifierclass and service have been removed. Thesylius.api.paths_to_hideparameter used in this class has also been removed. We recommend defining endpoints with theApiPlatform\Metadata\NotExposedclass to hide specific operations. -
The following parameters have been renamed:
Old parameter New parameter sylius.security.new_api_routesylius.security.api_routesylius.security.new_api_regexsylius.security.api_regexsylius.security.new_api_admin_routesylius.security.api_admin_routesylius.security.new_api_admin_regexsylius.security.api_admin_regexsylius.security.new_api_shop_routesylius.security.api_shop_routesylius.security.new_api_shop_regexsylius.security.api_shop_regexsylius.security.new_api_user_account_routesylius.security.api_shop_account_routesylius.security.new_api_user_account_regexsylius.security.api_shop_account_regex
-
The following configuration parameters have been removed:
sylius_api.legacy_error_handlingsylius_api.serialization_groups.skip_adding_read_groupsylius_api.serialization_groups.skip_adding_index_and_show_groups