2013-04-08 10 views
7

Quando si definiscono servizi utilizzando il file di configurazione, come posso passare una costante PHP (CURLAUTH_DIGEST in questo esempio) come argomento del costruttore?Come passare una costante PHP come argomento di servizio in Symfony 2?

io non posso provarlo adesso ma suppongo che:

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

non avrebbe funzionato perché CURLAUTH_DIGEST viene convertito in un string.

risposta

13

Ecco un modo per farlo

  1. aggiungere una riga nel tuo config per includere una configurazione .php

    app/config/config.yml

    imports: 
        - { resource: constants.php } 
    
  2. Crea un nuovo file constants.php

    app/config/constants.php

    <?php 
    
    $container->setParameter('curlauth.digest', CURLAUTH_DIGEST); 
    
  3. È ora possibile accedere a questa costante nel vostro servizio

    @ Bundle/Resources/config/services.yml

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

Grazie, questo ci mostra come farlo in YAML. La risposta duplicata (non ho letto molto bene) afferma che non è possibile farlo (solo in XML). Ho votato per chiudere, ora lo farò per riaprire. – gremo

Problemi correlati