nick-zh/php-avro-schema-generator

此包已被废弃,不再维护。作者建议使用 php-kafka/php-avro-schema-generator 包。

PHP 子架构 Avro 架构生成器

v0.3.1 2020-09-02 12:47 UTC

This package is auto-updated.

Last update: 2020-11-16 13:14:44 UTC


README

此包已被弃用,推荐使用 php-kafka/php-avro-schema-generator

PHP Avro 架构生成器

Actions Status Maintainability Test Coverage Latest Stable Version Latest Unstable Version

安装

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