gheb / api-platform-config-converter-bundle
将您的 API Platform 配置从一种格式转换为另一种格式
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 18:09:12 UTC
README
首先不必担心您的配置。
当您开始处理项目时,文档(因为它很容易制作一个原型)会向您展示如何使用注解配置资源。通常使用注解是一个好习惯。
但当您的项目开始增长时,您开始意识到您需要更改为一个更合适、更易于维护的格式,如 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 转换