删除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.

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 ;-)