2013-04-08 34 views
7

Khi xác định dịch vụ bằng cách sử dụng tệp cấu hình, làm thế nào tôi có thể chuyển một hằng số PHP (CURLAUTH_DIGEST trong ví dụ này) làm đối số hàm tạo?Làm thế nào để chuyển một hằng số PHP làm đối số dịch vụ trong Symfony 2?

tôi không thể kiểm tra nó ngay bây giờ nhưng tôi cho rằng:

services: 
    my_service: 
     class: "%my_service.class%" 
     arguments: [CURLAUTH_DIGEST] 

sẽ không làm việc vì CURLAUTH_DIGEST được chuyển thành một string.

Trả lời

13

Đây là một cách để làm điều này

  1. Thêm một dòng trong cấu hình của bạn để bao gồm một cấu hình .php

    app/config/config.yml

    imports: 
        - { resource: constants.php } 
    
  2. Tạo một tệp mới constants.php

    app/config/constants.php

    <?php 
    
    $container->setParameter('curlauth.digest', CURLAUTH_DIGEST); 
    
  3. Bây giờ bạn có thể truy cập liên tục này trong dịch vụ của bạn

    @ Bundle/Resources/config/services.yml

    services: 
        my_service: 
         class: "%my_service.class%" 
         arguments: [%curlauth.digest%] 
    
+0

Cảm ơn bạn, điều này cho chúng ta thấy làm thế nào để làm điều đó trong YAML. Câu trả lời trùng lặp (tôi đã không đọc rất rõ) nói rằng nó không thể làm điều đó (chỉ trong XML). Tôi đã bỏ phiếu để đóng, bây giờ tôi sẽ làm cho mở lại. – gremo

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