nick-zh / php-avro-schema-generator
v0.3.1
2020-09-02 12:47 UTC
Requires
- ext-json: *
- flix-tech/avro-php: ^3.0|^4.0
- symfony/console: ^4.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
- infection/infection: ^0.17
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^9.3
- rregeer/phpunit-coverage-check: ^0.3
- squizlabs/php_codesniffer: ^3.4.2
This package is auto-updated.
Last update: 2020-11-16 13:14:44 UTC
README
此包已被弃用,推荐使用 php-kafka/php-avro-schema-generator
PHP Avro 架构生成器
安装
composer require nick-zh/php-avro-schema-generator "^0.1.0"
描述
由于 Avro 不支持外部子架构,这只是一个小的辅助工具,用于统一您的架构,并从 PHP 类(实验性!)创建基本架构。
合并子架构/架构
架构模板目录:包含 avsc 模板文件(含子架构)的目录 输出目录:统一架构文件的输出目录
合并子架构(代码)
<?php use NickZh\PhpAvroSchemaGenerator\Registry\SchemaRegistry; use NickZh\PhpAvroSchemaGenerator\Merger\SchemaMerger; $registry = (new SchemaRegistry()) ->addSchemaTemplateDirectory('./schemaTemplates') ->load(); $merger = new SchemaMerger($registry, './schema'); $merger->merge();
合并子架构(命令)
./vendor/bin/avro-cli avro:subschema:merge ./example/schemaTemplates ./example/schema
从类生成架构
请注意,此功能是高度实验性的。
您可能仍然需要调整生成的模板,但它为您提供了一个基本的工作模板。
类目录:包含您想生成架构的类的目录 输出目录:生成架构模板的输出目录
生成架构(代码)
<?php use NickZh\PhpAvroSchemaGenerator\Registry\ClassRegistry; use NickZh\PhpAvroSchemaGenerator\Generator\SchemaGenerator; $registry = (new ClassRegistry()) ->addClassDirectory('./example/classes') ->load(); $generator = new SchemaGenerator($registry, './example/schemaTemplates'); $schemas = $generator->generate(); $generator->exportSchemas($schemas);
合并子架构(命令)
./vendor/bin/avro-cli avro:schema:generate ./example/classes ./example/schemaTemplates