当前位置: 首页 > 工具软件 > graphql-php > 使用案例 >

在php中如何执行查询,执行查询 · graphql-php · 看云

欧桐
2023-12-01

[TOC]

#### 执行查询

执行查询是一个复杂的过程涉及多个步骤,包括查询解析(query parsing),验证,以及最后的针对schema的执行。

graphql-php在类GraphQL\GraphQL中为些过程提供了方便的接口.

~~~

use GraphQL\GraphQL;

$result = GraphQL::execute(

$schema,

$queryString,

$rootValue = null,

$contextValue = null,

$variableValues = null,

$operationName = null

);

~~~

方法返回包含 data 和 errors key值的数组(如果执行完全没有错误,则errors字段不存在),这个数组适合进一步的序列化。

#### execute执行参数

| 参数 | 类型 | 描述 |

| --- | --- | --- |

| schema | `GraphQL\Schema` | `必填` 你应用的schema的实例。 |

| queryString | `string` or `GraphQL\Language\AST\DocumentNode` | 查询字符串 或 文档节点 ,查询字符串最后也会转换成文档节点。graphql query string 会被解析,验证和执行。如果在执行之前已经在其它地方解析过,在这里传递对应的 ast document对象 以避免新的解析。 |

| rootValue | `mixed` | 传递给schema 中 root-level Object type 的数据,它作为 类型的 field resolvers的第一个参数传入,如果实际的根值由 Query 类型本身提取(如字段的参数)可以被忽略或设置为null |

| contextValue | `mixed` | 保存所有的 field resolvers 之间 共享的信息,可以是任意值,大多数情况下它传递当前登录者信息,及位置描述等。 在所有 field resolvers中作为回调函数的第三个参数变量 |

| variableValues | `array` | 伴随 query string 传递的变量数组,key值对应 query string中的变量声明。 |

| operationName | `string` | 在query string 包含多个顶级操作的情况下,允许调用者指定在query string中将运行哪一个 |

 类似资料: