用途:在 OroCommerce v6.1 中创建与注册自定义 Bundle,配置依赖注入扩展和服务定义,并加入翻译等资源。
主要能力:提供标准 Bundle 目录结构(Bundle 类、DependencyInjection、Resources/config/services.yml、translations、Entity、EventListener、Command、Migrations);Bundle 类通过 getPath() 返回 DIR,让内核定位资源;DI 扩展使用 YamlFileLoader 加载 services.yml,并用 #[\Override] 标注 load() 与 getAlias();在 Resources/config/oro/bundles.yml 中注册 Bundle;在 services.yml 中定义服务、事件监听器标签与参数。
使用方式:按结构创建文件,扩展别名需与 Bundle 命名约定一致(如 acme_demo 对应 AcmeDemoBundle);注册示例如 bundles: - { name: Acme\Bundle\DemoBundle\AcmeDemoBundle };服务用 tags 触发编译器通道注册监听器、命令、API 端点。安装后执行 php bin/console cache:clear,并用 php bin/console debug:container acme_demo 验证服务注册。
适用场景:新建 Bundle、注册 Bundle、配置 DI 与服务、事件监听、导航菜单、系统配置和翻译。
限制与常见问题:修改 bundles.yml、services.yml、navigation.yml 后必须清缓存,否则不生效;扩展别名错误会静默跳过 services.yml 加载;bundles.yml 中优先级越低越先加载(与处理器的优先级相反),自定义 Bundle 通常可省略 priority;服务装饰、编译器通道、导航、系统配置与翻译细节需参考 bundle-patterns.md,v6.1 迁移与环境说明见 v6.1.md。