承接 decowood/laravel-eloquent-to-graphql 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

decowood/laravel-eloquent-to-graphql

最新稳定版本:v1.0.5

Composer 安装命令:

composer require decowood/laravel-eloquent-to-graphql

包简介

Automatically turn Eloquent models into GraphQL

README 文档

README

Tests Latest Stable Version License

This package generates a static GraphQL schema from your Eloquent models.

It is suggested to be used with lighthouse.

Setup

  1. Install the package:
composer require --dev brausepulver/laravel-eloquent-to-graphql
  1. Type-hint your models' relationships:
use Illuminate\Database\Eloquent\Relations\HasMany;

class User extends Model
{
    public function cuteCats(): HasMany
    {
        ...
    }
}
  1. (Optional) Publish the configuration file:
php artisan vendor:publish --tag="eloquent_to_graphql.config"

Usage

php artisan e2gql

This will generate a schema for all your models in a single file at graphql/generated.graphql.

There are several options for customizing the way the schema is generated. Please have a look at them with
php artisan e2gql --help.

Configuration

Automatic Updates

To automatically update the schema every time one of your Eloquent models changes, you can register the command in your IDE of choice with the --force option, which disables all prompts.

If you are using VSCode, this can be achieved using the Run on Save extension. After installing the extension, you can add the following to .vscode/settings.json:

    "emeraldwalk.runonsave": {
        "commands": [
            {
                "match": "app/Models/.*\\.php",
                "isAsync": true,
                "cmd": "php artisan e2gql --force"
            }
        ]
    }

With standard project structure, this will update your schema every time an Eloquent model changes.

Custom Type Mappings

If your tables have columns with types unknown to DBAL, the command will let you know. In this case, you have two options:

  1. Let the command know which type that is known by DBAL you would like to map the unkown type to. You can do this by adding both to custom_type_mappings in config/eloquent_to_graphql.php:
    'custom_type_mappings' => [
        'from-type' => 'to-type'
    ]
  1. Ignore the columns entirely using the --exclude-columns option. You can then later add them by hand.

TODO

  • Option to automatically update the schema after migrations are run
  • Way to keep changes made by the user when regenerating a schema
  • More customizable type resolution

统计信息

  • 总下载量: 60
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-11-13