Sylius 插件 - 如何在包内正确使用监听器和 类

Sylius plugin - how to use listeners and classes properly inside package

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

您可以在 src/Resources/config/services.yaml 文件中包含您的服务声明。

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

# config/packages/_sylius.yaml

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

在这种情况下,您可以查看其他 Sylius 插件的源代码,了解它们是如何实现的。但根据经验,您在根级别基础上自定义的任何内容,也可以在插件中完成,将非 php 内容移动到 src/Resources 文件夹中:配置(如服务、序列化、验证等)、模板、翻译、资产等