gheb / configuration-converter-bundle
将您的API平台配置从一种格式转换为另一种格式
Requires
- api-platform/core: >=2.4.3 <=2.4.7
- doctrine/annotations: ^1.6
- symfony/config: ^4.3
- symfony/console: ^4.3
- symfony/dependency-injection: ^4.3
- symfony/event-dispatcher: ^4.3
- symfony/http-foundation: ^4.3
- symfony/http-kernel: ^4.3
- symfony/serializer: ^4.3
- symfony/yaml: ^4.3
Requires (Dev)
- ext-dom: *
- doctrine/doctrine-bundle: 1.8
- doctrine/orm: ^2.6.3
- friendsofphp/php-cs-fixer: ^2.15@dev
- phpstan/phpstan: ^0.11.0@dev
- phpunit/phpunit: ^8.0
- symfony/doctrine-bridge: ^4.0
- symfony/form: ^4.0
- symfony/framework-bundle: ^4.3
- symfony/templating: ^4.0
- symfony/twig-bundle: ^4.0
- symfony/validator: ^4.0
This package is auto-updated.
Last update: 2022-02-24 21:09:53 UTC
README
首先不要担心您的配置。
当您开始处理项目时,文档(因为易于进行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转换