【问题标题】:Sylius plugin - how to use listeners and classes properly inside packageSylius 插件 - 如何在包内正确使用监听器和类
【发布时间】:2020-07-28 14:33:30
【问题描述】:

美好的一天, 我基于 Sylius 插件骨架将我自己的包安装到 Sylius 中。该插件的 /src 文件夹中的主类被调用,但我需要使用 /src 文件夹中的其他类。例如,我得到了 /src/Menu/RewriteMenu.php ,我需要通过 services.yaml 触发方法,我需要在包内执行此操作 - 而不是在 Sylius 项目中配置侦听器。我怎样才能实现它?非常感谢您的回复。

【问题讨论】:

    标签: plugins configuration sylius


    【解决方案1】:

    您可以在其中拥有一个带有您的服务声明的 src/Resources/config/services.yaml 文件。

    然后您需要从根配置文件中导入配置。例如,要导入插件的服务,您可以这样做:

    # config/packages/_sylius.yaml
    
    imports:
        ...
        - { resource: "@YourPluginName/Resources/config/services.yaml" }
    

    在这种情况下,您可以查看其他 Sylius 插件源代码,了解它们是如何实现的。但是根据经验,您在根级别自定义的任何内容也可以在插件中完成、翻译、资产等。

    【讨论】:

    • 非常感谢您的回复!这实际上是我尝试过的第一件事,我认为它不起作用,因为我需要将 service.yaml 注册为配置文件。如果不是,我认为这可能是一些错字,必须尝试三重检查))
    • 仍然没有运气。我的插件设置与我将如何在 sylius 项目中以 reguar 非包方式执行此操作完全相同,但仍然无法正常工作
    • 奇怪。我正在查看其他插件源代码,它们就是这样工作的。您使用的是什么版本的 Sylius 和 Symfony?另外,您可以尝试将services.yaml 重命名为services.yml 吗?我记得 Sylius 没有将 .yaml 扩展名视为有效并且不得不使用 .yml 时遇到问题。这是我现在唯一的猜测。
    • 哦,快...也许您需要从根services.yaml 文件中导入插件配置/服务文件?我已经更新了答案
    • 谢谢你!我大概在你发布答案前半小时就知道了 xD 非常感谢!
    猜你喜欢
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 2020-12-25
    • 1970-01-01
    • 2021-11-04
    • 2010-12-11
    • 2018-12-11
    相关资源
    最近更新 更多