linkorb / schemata
Schema 工具:建模、文档、生成器、验证器
Requires
- erusev/parsedown: ^1.0
- phpmyadmin/sql-parser: ^5.0
- symfony/console: ^3.0|^4.2|^5.0
- symfony/finder: ^3.0|^4.2|^5.0
- symfony/property-access: ^3.0|^4.2|^5.0
- symfony/serializer: ^3.0|^4.2|^5.0
- symfony/validator: ^3.0|^4.2|^5.0
- symfony/yaml: ^3.0|^4.2|^5.0
- twig/twig: ^1.8|^2.6
Requires (Dev)
- pitpit/php-diff: ^1.0@dev
This package is auto-updated.
Last update: 2024-08-25 07:58:07 UTC
README
安装
您可以使用以下步骤使用包含的生成工具
- 确保已安装
composer
(https://getcomposer.org.cn/download/) - 添加依赖:
composer require linkorb/schemata
- 运行
composer install
安装依赖。这将下载我们需要的所有库到vendor/
子目录
使用方法
通用 CLI 使用
vendor/bin/schemata <command> <arguments>
Schema HTML 文档
输入以下命令以根据模式文件生成 HTML 文档
`vendor/bin/schemata generate:html-doc /path/to/schema /path/to/build/html-doc`
这将解析 schema/
目录中定义的模式,并在 build/html-doc
目录中生成完整的 HTML 文档集。
您可以通过在网页浏览器中打开 index.html
文件来浏览文档。
open `build/html-doc/index.html`
GraphQL 模式定义
输入以下命令以根据模式文件生成 GraphQL 模式定义
`vendor/bin/schemata generate:graphql-schema /path/to/schema /path/to/build/graphql [--bundle]`
这将解析 schema/
目录中定义的模式,并在 build/graphql
目录中生成完整的 GraphQL 类型集。传递 --bundle
标志将创建单个捆绑文件而不是每个类型的单个文件
上下文模式定义
输入以下命令以根据模式文件生成 context 模式定义
`vendor/bin/schemata generate:context-schema /path/to/schema /path/to/build/context [--bundle]`
这将解析 schema/
目录中定义的模式,并在 build/context
目录中生成完整的 GraphQL 类型集。传递 --bundle
标志将创建单个捆绑文件而不是每个类型的单个文件
模式验证
`vendor/bin/schemata schemata:validate /path/to/schema`
一个服务,它扫描所有表和列,执行验证。控制台命令在没有问题时返回 0
,存在问题时返回 -1
。
模式差异
`vendor/bin/schemata schemata:diff /path/to/schemaOne /path/to/schemaTwo`
一个控制台命令,
- 加载 2 个模式;
- 扫描所有表+列,并构建一个包含差异的数组(添加+删除的表和列);
- 将差异列表输出到控制台。
内联使用示例
<?php require_once __DIR__ . '/vendor/autoload.php'; use LinkORB\Schemata\Service\SchemaProviderPath; use LinkORB\Schemata\Service\SchemaService; $schemaProvider = new SchemaProviderPath('/workspace/schema'); $service = new SchemaService($schemaProvider->getSchema()); $service->parseSchema(); $schema = $service->getSchema(); echo 'Number of tables: ' . count($schema->getTables()) . PHP_EOL, 'Number of codelists: ' . count($schema->getCodelists()) . PHP_EOL ;
常规提交
此存储库正在使用 Conventional Commits
请至少运行一次 npm install
,以安装适当的工具和 git 钩子(这有助于您通过在提交之前对其进行 linting 来遵循约定)。
简而言之:您应该在提交标题前加上正确的类型(例如,feat: 我的新酷功能
)。这有助于创建清晰的提交历史,自动处理 semver、标记和 CHANGELOG.md 生成。
如果您想在我们的规划系统中引用一个卡片,只需在提交标题末尾添加 #123
。该卡片将正确地从变更日志等中链接。
要发布新版本,只需运行 npm run publish
。这将更新变更日志,并将 composer.json、package.json 等清单更新到新标签。标签遵循 Semver,并基于自上次发布以来的提交类型选择。