gheb/configuration-converter-bundle

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

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

0.6.1 2019-10-01 05:27 UTC

README

CircleCI Coverage Status

首先不要担心您的配置。

当您开始处理项目时,文档(因为易于进行POC)会向您展示如何使用注解配置资源。通常使用注解是一个好习惯。

但是当您的项目开始增长时,您开始意识到您需要更改为一个更合适、更易于维护的格式,如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转换