sylius-labs / sylius-1-11-shim-bundle
将 Sylius 1.11 的某些功能添加到 Sylius 1.12 及以上版本
v1.0.0
2022-11-15 07:55 UTC
Requires
- php: ^8.0
- sylius/sylius: ^1.10
- symfony/browser-kit: ^5.4|^6.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
⚙️ 安装
-
使用 composer 安装包
$ composer require sylius-labs/sylius-1-11-shim-bundle --dev
-
将包添加到您的
config/bundles.php
文件中<?php return [ // ... SyliusLabs\Sylius111ShimBundle\SyliusLabsSylius111ShimBundle::class => ['test' => true, 'test_cached' => true], ];
📖 使用方法
遗留 Behat API Platform 客户端
Sylius 1.12 内置了重构后的 API Platform 客户端用于 Behat 测试。这可能会导致同时支持 Sylius 1.11 和 1.12 变得更加困难。为了简化这一过程,我们创建了一个遗留客户端,该客户端可以用于支持 Sylius 1.11 和 1.12 的插件。
ℹ️
Sylius1_11\Behat\Client\*
类适用于 1.12 和更早版本的 Sylius。
- 为了与
1.11
及更早版本兼容,使用sylius.behat.api_platform_client.legacy
代替sylius.behat.api_platform_client
- 所有
1.11
及更早版本的sylius.behat.api_platform_client.*
服务都可以再次使用 - 由于 Sylius 1.12 的
Sylius\Behat\Client\ApiClientInterface
与 Sylius 1.11 及更早版本的Sylius\Behat\Client\ApiClientInterface
不兼容,为了使其兼容,请使用Sylius1_11\Behat\Client\ApiClientInterface
- 由于 Sylius 1.12 的
Sylius\Behat\Client\ApiPlatformClient
与 Sylius 1.11 及更早版本的Sylius\Behat\Client\ApiPlatformClient
不兼容,为了使其兼容,请使用Sylius1_11\Behat\Client\ApiPlatformClient
- 由于 Sylius 1.12 的
Sylius\Behat\Client\RequestInterface
与 Sylius 1.11 及更早版本的Sylius\Behat\Client\RequestInterface
不兼容,为了使其兼容,请使用Sylius1_11\Behat\Client\RequestInterface
- 由于 Sylius 1.12 的
Sylius\Behat\Client\Request
与 Sylius 1.11 及更早版本的Sylius\Behat\Client\Request
不兼容,为了使其兼容,请使用Sylius1_11\Behat\Client\Request
恢复 sylius.behat.context.hook.email_spool
服务
sylius.behat.context.hook.email_spool
已被 sylius.behat.context.hook.mailer
替换。此 shim 添加了一个指向新名称的别名。
📝 示例
已使用其中一个签名已更改的服务。
只需将 Sylius
替换为 Sylius1_11
。所有签名已更改的服务都已被重命名为此命名方案。
use Behat\Behat\Context\Context; -use Sylius\Behat\Client\ApiClientInterface; use Sylius\Behat\Client\ResponseCheckerInterface; use Sylius\Behat\Service\SharedStorageInterface; use Sylius\LoyaltyPlugin\Domain\Model\CustomerInterface; +use Sylius1_11\Behat\Client\ApiClientInterface; use Webmozart\Assert\Assert; final class ManagingLoyaltyContext implements Context { public function __construct( private ApiClientInterface $apiAdminClient, private SharedStorageInterface $sharedStorage, private ResponseCheckerInterface $responseChecker, ) { }
拥有自定义资源的 API 客户端
将 sylius.behat.api_platform_client
父声明替换为 sylius.behat.api_platform_client.legacy
,并将 Sylius\Behat\Client\ApiPlatformClient
类替换为 Sylius1_11\Behat\Client\ApiPlatformClient
。
-<service id="app.behat.api_platform_client.admin.points" class="Sylius\Behat\Client\ApiPlatformClient" parent="sylius.behat.api_platform_client"> +<service id="app.behat.api_platform_client.admin.points" class="Sylius1_11\Behat\Client\ApiPlatformClient" parent="sylius.behat.api_platform_client.legacy"> <argument>loyalty-points-accounts</argument> <argument>admin</argument> </service>