2013-04-08 16 views
7

Podczas definiowania usług przy użyciu pliku konfiguracyjnego, jak mogę przekazać stałą PHP (CURLAUTH_DIGEST w tym przykładzie) jako argument konstruktora?Jak przekazać stałą PHP jako argument usługi w Symfony 2?

I nie można przetestować go teraz ale zakładam, że:

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

nie będzie działać, ponieważ CURLAUTH_DIGEST jest konwertowany do string.

Odpowiedz

13

Oto sposób to zrobić

  1. Dodaj linię w config zawierać konfigurację .php

    app/config/config.yml

    imports: 
        - { resource: constants.php } 
    
  2. Utwórz nowy plik constants.php

    app/config/constans.php

    <?php 
    
    $container->setParameter('curlauth.digest', CURLAUTH_DIGEST); 
    
  3. Możesz teraz uzyskać dostęp do tego stała w usłudze

    @ Bundle/Resources/config/services.yml

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

Dziękuję, to pokazuje nam, jak to zrobić w YAML. Duplikat odpowiedzi (nie czytałem bardzo dobrze) stwierdza, że ​​nie można tego zrobić (tylko w XML). Głosowałem za zamknięciem, teraz zrobię to, aby ponownie otworzyć. – gremo

Powiązane problemy