x-graphql / codegen
生成执行GraphQL的PHP代码
0.1.0
2024-03-27 10:27 UTC
Requires
- php: >=8.2
- nette/php-generator: ^3.6 || ^4.0
- symfony/console: ^6.4 || ^7.0
- symfony/event-dispatcher: ^6.4 || ^7.0
- symfony/string: ^6.4 || ^7.0
- webonyx/graphql-php: ^15.9
- x-graphql/delegate: ^0.1.0
Requires (Dev)
- phpunit/phpunit: ^11.0
- symfony/filesystem: ^6.4 || ^7.0
- symplify/easy-coding-standard: ^12.1
README
生成执行GraphQL的PHP代码
入门指南
通过 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 创建