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
文件夹中:配置(如服务、序列化、验证等)、模板、翻译、资产等
美好的一天, 我有自己的包,我已经根据 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
文件夹中:配置(如服务、序列化、验证等)、模板、翻译、资产等