douzhuo1858 2012-04-19 11:39
浏览 29
已采纳

删除Symfony2范围扩展通知

I'm trying to speed up my stack by removing references to the service container where possible. In this case I only need the request:

email_error_message:
  class: Core\MyBundle\Services\Email\ErrorMessage
        arguments: [ @request, %params ]

However, that throws a scope widening issue. I'm not concerned with refactoring the code for now, I just wish to get rid of the warning by adding strict = true. But I can't seem to get the YAML syntax right:

email_error_message:
  class: Core\MyBundle\Services\Email\ErrorMessage
        arguments:
            - { type: service, id: request, strict: false }
            - %params%

This isn't working though. Any ideas?

EDIT I realise I could change the scope of this service to request, but that isn't an option in this case.

  • 写回答

1条回答 默认 最新

  • douxin1163 2012-04-19 15:03
    关注

    You want to restrict the scope of the service to the request scope, since you need to make sure you're passed the right Request instance - if you are using the service from within a subrequest for example, or whether through the main request. Adjust your service config to:

    services:
        email_error_message:
            class: Core\MyBundle\Services\Email\ErrorMessage
            scope: request
            arguments: [ @request, %params% ]
    

    See the docs for more details.

    Edit as per your question edit, you're not able to change the scope. In which case, your syntax should be as follows:

    services:
        email_error_message:
            class: Core\MyBundle\Services\Email\ErrorMessage
            arguments: [ @request=, %params% ]
    

    with the appended = symbol. Note that I've not seen this referenced anywhere, and it's from digging around in the code for the DI container ;-)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line