我希望能夠通過配置參數連接服務,以便我可以在開發環境中使用Web服務客戶端的模擬實現,並且我可以使用適當的客戶在prod env。使用配置參數連接DIC中的Symfony2服務
這裏是我的services.xml中的一個片段:
<parameters>
...
<parameter key="api_client.api_service.id">ic_domain_security.api_mock_service</parameter>
...
</parameters>
<services>
...
<service id="ic_domain_security.api_client"
class="%api_client.class%"
public="true">
<tag name="monolog.logger" channel="domainApiClient"/>
<argument type="service" id="%api_client.api_service.id%"/>
<call method="setLogger">
<argument type="service" id="logger" on-invalid="null"/>
</call>
</service>
<service id="ic_domain_security.api_restful_webservice"
class="IC\DomainSecurityBundle\ApiClient\ApiRestfulWebService"
public="false">
<tag name="monolog.logger" channel="domainApiRestfulWebService"/>
<argument>%ic_domain_security.service_url%</argument>
<argument type="service" id="logger" on-invalid="null"/>
</service>
<service id="ic_domain_security.api_mock_service"
class="IC\DomainSecurityBundle\Tests\Mock\ApiMockService"
public="false">
<call method="setLogger">
<argument type="service" id="logger" on-invalid="null"/>
</call>
</service>
...
</services>
線<argument type="service" id="%api_client.api_service.id%"/>
試圖定義服務通過基於參數。所以我最終試圖將api_client.api_service.id
參數推送到配置文件。
不幸的是,似乎沒有可以使用的參數,我收到以下錯誤服務ID定義:
ServiceNotFoundException: The service "ic_domain_security.api_client" has a dependency on a non-existent service "%api_client.api_service.id%".
有沒有辦法做我上面所解釋的,這樣的服務ID可以通過使用配置參數?