2014-03-26 175 views
1

我想在我的symfony项目中将此XML转换为YAML格式。有一些问题。XML到YAML转换

<?xml version="1.0" ?> 
    <!-- src/Test/WebBundle/Resources/config/services.xml--> 
    <container xmlns="http://symfony.com/schema/dic/services" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> 
     <parameters> 
       <parameter key="adoy_oauth2.client.class">OAuth2\Client</parameter> 
       <parameter key="test_web.client.class">Test\WebBundle\Service\OAuth2Client</parameter> 
      </parameters> 

      <services> 
       <service id="adoy_oauth2.client" class="%adoy_oauth2.client.class%"> 
        <argument>%oauth2_client_id%</argument> 
        <argument>%oauth2_client_secret%</argument> 
       </service> 

       <service id="test_web.credentials_client" class="%test_web.client.class%"> 
        <argument type="service" id="adoy_oauth2.client" /> 
        <argument>%oauth2_auth_endpoint%</argument> 
        <argument>%oauth2_token_endpoint%</argument> 
        <argument>%oauth2_redirect_url%</argument> 
        <argument>client_credentials</argument> 
        <argument type="collection"> 
         <argument key="client_id">%oauth2_client_id%</argument> 
         <argument key="client_secret">%oauth2_client_secret%</argument> 
        </argument> 
       </service> 

       <service id="test_web.authorize_client" class="%test_web.client.class%"> 
        <argument type="service" id="adoy_oauth2.client" /> 
        <argument>%oauth2_auth_endpoint%</argument> 
        <argument>%oauth2_token_endpoint%</argument> 
        <argument>%oauth2_redirect_url%</argument> 
        <argument>authorization_code</argument> 
        <argument type="collection"> 
         <argument key="redirect_uri">%oauth2_redirect_url%</argument> 
        </argument> 
       </service> 
      </services> 
</container> 

这是YAML我想:

parameters: 
    adoy_oauth2.client.class: OAuth2\Client 
    test_web.client.class: Lyke\WebBundle\Service\OAuth2Client 

services: 
    adoy_oauth2.client: 
     class: %adoy_oauth2.client.class% 
     arguments: [%oauth2_client_id%, %oauth2_client_secret%] 
    test_web.credentials_client: 
     test_: %lyke_web.client.class% 
     arguments: 
      - @adoy_oauth2.client 
      - [%oauth2_auth_endpoint%, %oauth2_token_endpoint%, %oauth2_redirect_url%, "client_credentials"] 
      - { 
        collection: 
        { 
         client_id: %oauth2_client_id%, 
         client_secret: %oauth2_client_secret% 
        } 
       } 
    test_web.authorize_client: 
     test_: %lyke_web.client.class% 
     arguments: 
      - @adoy_oauth2.client 
      - [%oauth2_auth_endpoint%, %oauth2_token_endpoint%, %oauth2_redirect_url%, "authorization_code"] 
      - { 
        collection: 
        { 
         redirect_uri: %oauth2_redirect_url% 
        } 
       } 

我真的不知道如何将它正确转换,我认为有两个参数是不是正确的。请帮忙..

+3

有一个工具了,现在可以让你有这样的自动转换:http://converter.rosstuck.com – RelaXNow

+0

@RelaXNow,我面临着同样的问题有关转换CONFIGS,发现转换器你提到了这个问题,然后把你的评论打包回答为结果:)。 –

回答

1

你的collection说法有问题;我试着用你的XML,并获得YAML,并且它的在线工具似乎无效,请尝试用这个,

parameters: 
    adoy_oauth2.client.class: OAuth2\Client 
    test_web.client.class: Lyke\WebBundle\Service\OAuth2Client 

services: 
    adoy_oauth2.client: 
     class: "%adoy_oauth2.client.class%" 
     arguments: ["%oauth2_client_id%", "%oauth2_client_secret%"] 
    test_web.credentials_client: 
     test_: "%lyke_web.client.class%" 
     arguments: 
      - "@adoy_oauth2.client" 
      - ["%oauth2_auth_endpoint%", "%oauth2_token_endpoint%", "%oauth2_redirect_url%", "client_credentials",[client_id: "%oauth2_client_id%",client_secret: "%oauth2_client_secret%"]] 
    test_web.authorize_client: 
     test_: "%lyke_web.client.class%" 
     arguments: 
      - "@adoy_oauth2.client" 
      - ["%oauth2_auth_endpoint%", "%oauth2_token_endpoint%", "%oauth2_redirect_url%", "authorization_code",[redirect_uri: "%oauth2_redirect_url%"]]    

YAML Converteronline YAML parser说,它的一个有效yaml