x-graphql/codegen

生成执行GraphQL的PHP代码

0.1.0 2024-03-27 10:27 UTC

This package is auto-updated.

Last update: 2024-08-27 11:16:11 UTC


README

生成执行GraphQL的PHP代码

unit tests codecov

入门指南

通过 Composer 安装此包

composer require x-graphql/codegen

用法

安装后,您需要使用以下命令生成配置文件

./vendor/bin/x-graphql-codegen x-graphql:codegen:init-config

您的配置文件 x-graphql-codegen.php 初始化看起来像

<?php

return [
    'default' => [
        /// PSR 4 namespace, classes and traits generated will use.
        'namespace' => 'App\GraphQL\Codegen',
        /// Where storing GraphQL queries files.
        'sourcePath' => __DIR__ . '/',
        /// Where storing PHP generated code with namespace above.
        'destinationPath' => __DIR__ . '/',
        /// Generated query class name.
        'queryClassName' => 'GraphQLQuery',
    ]
];

编辑它以适应您的环境,然后在 sourcePath 中创建一些GraphQL查询文件,然后使用命令生成PHP代码

./vendor/bin/x-graphql-codegen x-graphql:codegen:generate

示例

添加 x-graphql/http-schema 包以通过http执行模式

composer require x-graphql/http-schema

初始化配置文件

./vendor/bin/x-graphql-codegen x-graphql:codegen:init-config

example.graphql 添加到当前工作目录,内容如下

query getCountries {
    countries {
        name
    }
}

运行命令生成PHP代码

./vendor/bin/x-graphql-codegen x-graphql:codegen:generate

使用生成的查询类

<?php

require __DIR__ . '/vendor/autoload.php';

$delegator = new \XGraphQL\HttpSchema\HttpDelegator('https://countries.trevorblades.com/');
$schema = \XGraphQL\HttpSchema\HttpSchemaFactory::createFromIntrospectionQuery($delegator);
$query = new \App\GraphQL\Codegen\GraphQLQuery($schema);

$result = $query->getCountries();

var_dump($result->toArray());

致谢

Minh Vuong 创建