【问题标题】:How to convert this file to XML? [closed]如何将此文件转换为 XML? [关闭]
【发布时间】:2013-01-22 23:39:46
【问题描述】:

如何将此文件转换为 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>

正确还是?

【问题讨论】:

标签: php xml symfony yaml


【解决方案1】:

您不需要转换它,您只需创建 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>

【讨论】:

  • 感谢您的详细回答!
【解决方案2】:

在 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'
            )
        )
    )
);

【讨论】:

  • 好的,谢谢,但现在我该怎么办?我应该使用可以为我转换它的工具还是自己做?
猜你喜欢
  • 2014-04-15
  • 1970-01-01
  • 2020-06-26
  • 2016-04-12
  • 2014-07-24
  • 2021-06-16
  • 2012-12-09
  • 2021-07-31
  • 1970-01-01
相关资源
最近更新 更多