Php 如何从一个单独的、导入的服务中装饰一个服务。yaml?

Php 如何从一个单独的、导入的服务中装饰一个服务。yaml?,php,symfony,yaml,Php,Symfony,Yaml,我在Symfony 4.4工作,我希望能够通过外部服务来装饰课程。yaml。 我尝试过从services.yaml内部进行装饰,它工作得非常完美,但问题是我需要能够在另一个文件中执行相同的操作,我称之为services_custom.yaml并导入了该文件。 我的导入似乎工作正常(顺便说一句,我还通过在PHP中重写这两个文件进行了测试,得到了相同的结果)。然而,我的班级没有布置。 我显然遗漏了什么,但我不知道是什么。 这是我的服务。yaml: imports: - { resource:

我在Symfony 4.4工作,我希望能够通过外部服务来装饰课程。yaml。 我尝试过从services.yaml内部进行装饰,它工作得非常完美,但问题是我需要能够在另一个文件中执行相同的操作,我称之为services_custom.yaml并导入了该文件。 我的导入似乎工作正常(顺便说一句,我还通过在PHP中重写这两个文件进行了测试,得到了相同的结果)。然而,我的班级没有布置。 我显然遗漏了什么,但我不知道是什么。 这是我的服务。yaml:

imports: 
  - { resource: 'services_custom.yaml'}

parameters:
  locale: 'en'
  env: '%env(APP_ENV)%'
  fallbacks: ['%locale%', 'fr']
  secret: '%env(APP_SECRET)%'

services:
  _defaults:
    autowire: true      
    autoconfigure: true 
    public: false       
  App\:
    resource: '../src/*'
    exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php,Solutions/lib}'

  App\Controller\:
    resource: '../src/Controller'
    tags: ['controller.service_arguments']

  App\EventListener\RequestListener:
    autowire: true
    tags:
      - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }

  App\EventListener\ResponseListener:
    autowire: true
    tags:
      - { name: kernel.event_listener, event: kernel.response, method: onKernelResponse }

  App\EventListener\ExceptionListener:
    tags:
      - { name: kernel.event_listener, event: kernel.exception }

  App\Manager\SolutionManager:
    public: false
    autowire: true

  App\DataFixtures\:
    resource: '../src/DataFixtures'
    tags: ['doctrine.fixture.orm']


  # App\Custom\Solutions\woocommercecustom:
  #     decorates: App\Solutions\woocommerce
  #     # pass the old service as an argument
  #     # arguments: ['@App\Custom\Solutions\woocommercecustom.inner']
  #     decoration_priority: 5
这是我的服务_custom.yaml:

services:

  _defaults:
    autowire: true      
    autoconfigure: true 
    public: false      

  App\Custom\Solutions\woocommercecustom:
      decorates: App\Solutions\woocommerce
      decoration_priority: 5

首先处理导入,如果主
服务.yaml
包含相同的服务定义,则会覆盖导入文件中的服务定义。尝试将
Custom
Custom/Solutions
添加到
exlude
列表中。应用程序\:资源:'../src/*'排除:'../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php,Solutions/lib,Custom}感谢您的解决方案成功!!我现在需要处理自定义类不存在的情况。我在考虑一个事件订阅者…?调查一下。