sylius-labs/sylius-1-11-shim-bundle

将 Sylius 1.11 的某些功能添加到 Sylius 1.12 及以上版本

安装次数: 88,800

依赖项: 2

建议者: 0

安全性: 0

星标: 0

关注者: 5

分支: 0

开放问题: 0

类型:symfony-bundle

v1.0.0 2022-11-15 07:55 UTC

This package is auto-updated.

Last update: 2024-09-15 11:41:26 UTC


README

⚙️ 安装

  1. 使用 composer 安装包

    $ composer require sylius-labs/sylius-1-11-shim-bundle --dev
  2. 将包添加到您的 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>