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>