adriana/sylius-impersonator-plugin

用户模拟插件


README

用户模拟插件

文档

这是一个简单的Sylius插件,旨在帮助管理员了解他们在商店中何时模拟了客户。这个提示由在商店横幅、客户名字附近以及结账页面显示字符串“被{模拟者用户名}模拟”组成。

快速安装

  1. 运行 composer require adriana/sylius-impersonator-plugin

  2. config/bundles.php 中启用插件

    <?php
    
    return [
       //...
       
       Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class => ['all' => true],
       Evo\SyliusUserImpersonatorPlugin\SyliusUserImpersonatorPlugin::class => ['all' => true],
    
       //...
    ];
    
  3. 确保你已修改 config/packages/_sylius.yaml 中的资源配置

    imports:
       - { resource: "@SyliusUserImpersonatorPlugin/Resources/config/app/config.yaml" }
    
  4. 执行迁移以在 channel 表中创建新字段 show_user_impersonate_hintbin/console doctrine:migrations:migrate

  5. 在你的Channel实体中添加 EvoUserImpersonatorChannelTrait 并实现接口 EvoUserImpersonatorChannelInterface

        namespace  App\Entity\Channel;
    
        use Evo\SyliusUserImpersonatorPlugin\Entity\Channel\EvoUserImpersonatorChannelInterface;
        use from Evo\SyliusUserImpersonatorPlugin\Entity\Channel\EvoUserImpersonatorChannelTrait;
        
        class Channel extends BaseChannel implements EvoUserImpersonatorChannelInterface
        {
            use EvoUserImpersonatorChannelTrait;
        }
    
  6. 确保你已修改 config/packages/_sylius.yaml 中的资源配置

        sylius_channel:
            resources:
                channel:
                    classes:
                        model: App\Entity\Channel\Channel
    
  7. config/translation.yaml 中添加翻译路径,以便使用翻译

        framework:
            default_locale: '%locale%'
            translator:
                paths:
                    - '%kernel.project_dir%/translations'
                    - '%kernel.project_dir%/vendor/adriana/sylius-impersonator-plugin/translations' 
    
  8. 为了运行Behat测试,确保你已经修改了你的 behat.yml 并进行了配置

        imports:
            - vendor/sylius/sylius/src/Sylius/Behat/Resources/config/suites.yml
            - vendor/adriana/sylius-impersonator-plugin/tests/Behat/Resources/config/suites.yml
        .
        .
        .
    
        FriendsOfBehat\SuiteSettingsExtension:
        paths:
            - "vendor/sylius/sylius/features"
            - "features"
            - "vendor/adriana/sylius-impersonator-plugin/features"
    

使用方法

检查管理员面板,通道选项 - 编辑一个通道,应该会出现并默认启用的“显示用户模拟提示”选项。

之后,你可以模拟一个客户,商店中将显示“被{模拟者用户名}模拟”提示。

此插件有一个Twig扩展,您可以在任何需要的模板中使用来显示“被模拟”提示。您可以通过调用此扩展来使用它

{{ "sylius.user_impersonator.hint"|trans({"{{impersonator_username}}": userImpersonatorHint()}) }}

您还可以使用在 Evo\SyliusUserImpersonatorPlugin\Service\CheckUserImpersonator 中创建的服务,您可以将它注入到您的应用程序中并调用其公共方法。

运行Behat测试

config/services_test.yaml 中配置服务路径

    - { resource: "../vendor/adriana/sylius-impersonator-plugin/tests/Behat/Resources/config/services.xml" }

使用: APP_ENV=test vendor/bin/behat --suite=adriana_user_impersonator 运行测试