2017-10-06 26 views
5

tôi đang làm việc trên một ứng dụng Symfony 2 được thực hiện bởi một công ty khác và đã xem qua định nghĩa dịch vụ sau:Symfony cú pháp tiêm dịch vụ

service_id: 
    class: 'path\to\class' 
    calls: 
     - [setRequest, ['@?request=']] 

Tôi biết những gì các dấu hỏi trong @?request= phương tiện (nếu dịch vụ không tồn tại , setRequest không được gọi), nhưng dấu hiệu bình đẳng ở cuối nghĩa là gì?

Cảm ơn!

+0

dấu bằng có thể được sử dụng để bơm các giá trị dựa trên biểu thức quá, một ví dụ về sử dụng này ở đây: https://symfony.com /doc/current/service_container/expression_language.html – teeyo

+0

@teeyo nhưng không được sử dụng như thế này ... – medowlock

+0

Vâng, tôi chỉ nói rằng nó có thể được sử dụng như thế này, cho trường hợp của bạn @prehfeldt aleady trả lời rằng :) – teeyo

Trả lời

6

Dấu bằng được sử dụng để báo cho vùng chứa bỏ qua vi phạm phạm vi. request nằm trong phạm vi đặc biệt và vùng chứa sẽ ném ngoại lệ nếu bạn sử dụng nó trong phạm vi khác.

Phạm vi không được chấp nhận trong Sf 2.8 và bị loại bỏ trong Sf 3.0. Xem https://symfony.com/doc/2.8/service_container/scopes.html

Ngoài ra, như các Symfony 2.4 bạn nên sử dụng request_stack: http://symfony.com/blog/new-in-symfony-2-4-the-request-stack

Các vấn đề liên quan