always-open / laravel-graphql-schema-generator
从现有的 Laravel 模型和数据库生成 GraphQL 模式
v1.0.2
2023-07-18 17:06 UTC
Requires
- php: ^8.1.0|^8.2.0
- always-open/sidekick: ^4.0
- illuminate/contracts: ^9.0|^10.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^9.5
README
从现有的 Laravel 模型和数据库生成 GraphQL 模式
此包将从您现有的 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
标志。它将应用于具有指定属性的所有模型。
此命令可以添加使用属性 key
和 name
的查询。截至本版本,不支持传递多个字段的支持。
php artisan laravel-graphql-generator:create-schema --additional-query-properties=key,name
测试
composer test
更新日志
有关最近更改的更多信息,请参阅 更新日志。
贡献
有关详细信息,请参阅 贡献指南。
安全漏洞
有关如何报告安全漏洞,请参阅我们的 安全策略。
鸣谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件。