always-open/laravel-graphql-schema-generator

从现有的 Laravel 模型和数据库生成 GraphQL 模式

v1.0.2 2023-07-18 17:06 UTC

This package is auto-updated.

Last update: 2024-09-18 19:56:57 UTC


README

从现有的 Laravel 模型和数据库生成 GraphQL 模式

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包将从您现有的 Laravel 模型和数据库生成 GraphQL 模式。它会读取现有的模型、关系和数据库以生成 GraphQL 模式,并可选地为每个模型生成查询。您还可以指定要包含的附加模型,例如供应商/包模型。

安装

您可以通过 composer 安装此包

composer require always-open/laravel-graphql-schema-generator

您可以使用以下命令发布配置文件:

php artisan vendor:publish --tag="laravel-graphql-schema-generator-config"

这是发布配置文件的内容

return [
    'custom_type_mappings' => [
         'timestamp' => 'DateTime',
         'datetime'  => 'DateTime',
         'date'      => 'Date',
    ],

    'custom_scalar_definitions' => [
        'scalar Date @scalar(class: "Nuwave\\Lighthouse\\Schema\\Types\\Scalars\\Date")',
        'scalar DateTime @scalar(class: "Nuwave\\Lighthouse\\Schema\\Types\\Scalars\\DateTime")',
    ],

    'model_path' => app_path('Models'),

    'model_stub' => __DIR__ . '/../stubs/graphql_schema.stub',

    'schema_path' => app_path('../graphql'),
];

使用方法

基本/默认使用方法

此命令将输出 GraphQL 模式到配置文件中指定的 schema_path。它将只生成模式文件,并且只解析配置文件中指定的 model_path 中的模型。

php artisan laravel-graphql-generator:create-schema

输出查询

要向模式中添加查询,请传递 --include-queries 标志。这将生成 GraphQL 模式文件和配置文件中指定的 model_path 中每个模型的查询文件。

php artisan laravel-graphql-generator:create-schema --include-queries

添加附加模型

如果您想包含位于 model_path 之外的附加模型,您可以传递 --additional-models 标志。如果您想包含供应商/包模型,这将非常有用。

php artisan laravel-graphql-generator:create-schema --additional-models="\\Spatie\\Tags\\Tag"

您还可以传递一个逗号分隔的模型列表以包含。

php artisan laravel-graphql-generator:create-schema --additional-models="\\Spatie\\Tags\\Tag","\\Spatie\\Activitylog\\Models\\Activity"

添加附加查询属性

默认查询将使用主键和唯一索引创建。如果您想添加用于搜索的附加属性,可以使用 --additional-query-properties 标志。它将应用于具有指定属性的所有模型。

此命令可以添加使用属性 keyname 的查询。截至本版本,不支持传递多个字段的支持。

php artisan laravel-graphql-generator:create-schema --additional-query-properties=key,name

测试

composer test

更新日志

有关最近更改的更多信息,请参阅 更新日志

贡献

有关详细信息,请参阅 贡献指南

安全漏洞

有关如何报告安全漏洞,请参阅我们的 安全策略

鸣谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件