2013-04-08 38 views
7

使用配置文件定義服務時,如何傳遞一個PHP常量(本例中爲CURLAUTH_DIGEST)作爲構造函數參數?如何在Symfony 2中將一個PHP常量作爲服務參數傳遞?

現在不能測試,但我認爲:

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

是行不通的,因爲CURLAUTH_DIGEST轉換爲string

回答

13

這裏有一個辦法做到這一點

  1. 在你的配置添加一行包括.php配置

    應用程序/配置/ config.yml

    imports: 
        - { resource: constants.php } 
    
  2. 創建一個新文件constants.php

    應用程序/配置/ constants.php

    <?php 
    
    $container->setParameter('curlauth.digest', CURLAUTH_DIGEST); 
    
  3. 您現在可以訪問這個常量在服務

    @包/資源/配置/ services.yml

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

謝謝,這告訴我們如何在YAML中做到這一點。重複的答案(我沒有讀得很好)聲明不可能做到這一點(僅限於XML)。我投票結束,現在我會重新開放。 – gremo 2013-04-09 10:00:08

相關問題