gheb/api-platform-config-converter-bundle

此包已被废弃,不再维护。没有建议的替代包。

将您的 API Platform 配置从一种格式转换为另一种格式

0.6.1 2019-10-01 05:27 UTC

README

CircleCI Coverage Status

首先不必担心您的配置。

当您开始处理项目时,文档(因为它很容易制作一个原型)会向您展示如何使用注解配置资源。通常使用注解是一个好习惯。

但当您的项目开始增长时,您开始意识到您需要更改为一个更合适、更易于维护的格式,如 XML 或 YAML。这很耗时,不是一件容易的事,也不是没有错误的。

这个包就是为了这个目的而设计的。

警告:由于 API-Platform 和 Serializer 组件的演变,可能会有未发现选项。请始终仔细检查输出,以确保没有遗漏的部分,如果您发现了,请帮助我们填补这些空缺。

安装

$ composer require --dev gheb/configuration-converter-bundle

注册该包。

对于 symfony < 3.4

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = [
        // ...
    ];

    if (in_array($this->getEnvironment(), ['dev'])) {
        //...
        $bundles[] = new ConfigurationConverter\ConfigurationConverterBundle();
    }

    return $bundles;
}

对于 symfony > 4

<?php
// config/bundles.php

<?php

return [
    // ...
    ConfigurationConverter\ConfigurationConverterBundle::class => ['dev' => true],
];

配置

配置该包,以下是默认值

# config/packages/configuration_converter.yaml
configuration_converter:
    api_platform_default_export_dir: '%kernel.project_dir%/config/packages/api-platform/'
    serializer_group:
        default_export_dir: '%kernel.project_dir%/config/packages/serialization/'
        entities_dir: ['%kernel.project_dir%/src/Entity/']

使用

默认情况下,我们推荐使用 'XML' 配置格式。

将您的每个实体的配置转换为 xml。

$ php bin/console configuration:convert

将特定实体的配置转换为 xml。

$ php bin/console configuration:convert -r 'FQCN\Of\Your\Entity'

要使用其他格式,请使用 --format|-f 选项。

$ php bin/console configuration:convert -r 'FQCN\Of\Your\Entity' -f 'xml'
$ php bin/console configuration:convert -r 'FQCN\Of\Your\Entity' -f 'yml'

默认情况下,您需要从 CLI 输出中复制和粘贴配置,但您可以将格式导出到特定目录。对于 API-Platform,请使用 --api-platform-output|-apo 选项。默认情况下,它将导出到 config/packages/api-platform 目录。对于序列化组,请使用 --serializer-groups-output|-sgo 选项。默认情况下,它将导出到 config/packages/serialization 目录。

$ php bin/console configuration:convert -r 'FQCN\Of\Your\Entity' --api-platform-output
$ php bin/console configuration:convert -r 'FQCN\Of\Your\Entity' --api-platform-output 'custom/directory'

$ php bin/console configuration:convert -r 'FQCN\Of\Your\Entity' --serializer-groups-output
$ php bin/console configuration:convert -r 'FQCN\Of\Your\Entity' --serializer-groups-output 'custom/directory'

$ php bin/console configuration:convert -r 'FQCN\Of\Your\Entity' --serializer-groups-output --api-platform-output
$ php bin/console configuration:convert -r 'FQCN\Of\Your\Entity' --api-platform-output 'custom/directory' --serializer-groups-output 'custom/directory'

默认情况下,该包将尝试转换 API-Platform 和属性组。如果您只想转换其中之一,请使用 --configurations|-c 选项。

$ php bin/console configuration:convert --configurations=api_platform
$ php bin/console configuration:convert --configurations=serializer_groups
$ php bin/console configuration:convert --configurations=api_platform --configurations=serializer_groups # default

贡献

将该项目分支,创建一个根据您的贡献的分支,编码,并遵循 contributing.md

以下是我认为的下一个版本的方式,任何帮助都受欢迎 :)

  • 添加 YAML 支持
  • 添加序列化组转换
  • 添加断言转换
  • 添加 doctrine 转换