首页 > 解决方案 > Symfony 4 - 将 XML 转换为 YAML

问题描述

我正在尝试安装 FosMessageBundle,没有 FosUserBundle。

为此,在文档中,我们必须创建一个新服务并将其使用到我们的 services.yaml 文件中

但在文档中,他们的声明是 XML 格式的,我无法将他翻译成 YAML:

<!-- app/config/services.xml -->

<service id="app.user_to_username_transformer" class="AppBundle\Form\DataTransformer\UserToUsernameTransformer">
    <argument type="service" id="doctrine" />
</service>

<service id="fos_user.user_to_username_transformer" alias="app.user_to_username_transformer" />

我试过这个:

app.user_to_username_transformer:
    class: 'App\Form\DataTransformer\UserToUsernameTransformer'
    arguments:
      type: "service"
      id: "doctrine"

  fos_user.user_to_username_transformer:
    alias: "app.user_to_username_transformer"

但是不知道好不好

标签: symfony

解决方案


在 yaml 中,服务type="service"@. 所以你的 xml 定义转换为

app.user_to_username_transformer:
  class: App\Form\DataTransformer\UserToUsernameTransformer
  arguments:
    - '@doctrine'

fos_user.user_to_username_transformer:
  alias: "@app.user_to_username_transformer"

文档中的更多详细信息 但是,如果您配置了自动装配并且您的参数已正确输入提示,Doctrine\Bundle\DoctrineBundle\Registry您所需要的只是为您的变压器起别名

fos_user.user_to_username_transformer:
  alias: "@App\Form\DataTransformer\UserToUsernameTransformer"

推荐阅读