0

このファイルを XML に変換するにはどうすればよいですか?

services:
IHQS.nuitblanche.admin.news:
class: IHQS\NuitBlancheBundle\Admin\NewsAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: nuitblanche, label: News }
arguments: [null, IHQS\NuitBlancheBundle\Entity\News, IHQSNuitBlancheBundle:NewsAdmin]

特にタグ部分

は :

<service id="nb.admin.news" class="IHQS\NuitBlancheBundle\Admin\NewsAdmin">
            <tag name="sonata.admin" manager_type="orm" group="NuitBlanche" label="News" />
            <argument />
            <argument>IHQS\NuitBlancheBundle\Entity\News</argument>
            <argument>IHQSNuitBlancheBundle:Admin</argument>
</service>

正しいか?

4

2 に答える 2

0

変換する必要はありません。XMLファイルを作成してYAMLファイルを含めるだけです。

<container xmlns="http://symfony-project.org/2.0/container">
  <imports>
    <import resource="default.yml" class="sfServiceContainerLoaderFileYaml" />
  </imports>
</container>

これにより、設定をオーバーライドして、YAMLをXMLに簡単に置き換えることができるようになります。

<container xmlns="http://symfony-project.org/2.0/container">
  <imports>
    <import resource="default.xml" />
  </imports>
  <parameters>
    <!-- These parameters override the one defined in default.xml -->
  </parameters>
  <services>
    <!-- These service definitions override the one defined in default.xml -->
  </services>
</container>

これはブログ投稿シリーズの一部です。つまり、次のとおりです。

コンポーネント自体はここに文書化されています:

いくつかの例のYAMLに同様の例のXMLを使用します。

# app/config/config.yml
services:
    my_mailer:
        class:        Acme\HelloBundle\Mailer
        arguments:    [sendmail]

XMLの場合:

<!-- app/config/config.xml -->
<services>
    <service id="my_mailer" class="Acme\HelloBundle\Mailer">
        <argument>sendmail</argument>
    </service>
</services>
于 2013-02-07T14:06:49.307 に答える
0

str_replace または preg_replace の助けを借りて、入力テキストを(多次元)配列に分割できるはずです。これにより、XML への変換がはるかに簡単になります。

$example => array(
    'services' => array(
        'IHQS.nuitblanche.admin.news' => array(
            'class' => 'IHQS\NuitBlancheBundle\Admin\NewsAdmin',
            'tags' => array(
                'name' => 'sonata.admin',
                'manager_type' => 'orm',
                'group' => 'nuitblanche',
                'label' => 'News'
            ),
            arguments => array(
                null,
                'IHQS\NuitBlancheBundle\Entity\News',
                'IHQSNuitBlancheBundle:NewsAdmin'
            )
        )
    )
);
于 2013-02-07T13:37:45.360 に答える