Documentation

DocumentValidator
in package

Implements the "Validation" section of the spec.

Validation runs synchronously, returning an array of encountered errors, or an empty array if no errors were encountered and the document is valid.

A list of specific validation rules may be provided. If not provided, the default list of rules defined by the GraphQL specification will be used.

Each validation rule is an instance of GraphQL\Validator\Rules\ValidationRule which returns a visitor (see the GraphQL\Language\Visitor API).

Visitor methods are expected to return an instance of GraphQL\Error\Error, or array of such instances when invalid.

Optionally a custom TypeInfo instance may be provided. If not provided, one will be created from the provided schema.

Table of Contents

$defaultRules  : array<string|int, ValidationRule>|null
$initRules  : bool
$rules  : array<string|int, ValidationRule>
$sdlRules  : array<string|int, ValidationRule>|null
$securityRules  : array<string|int, QuerySecurityRule>|null
addRule()  : mixed
Add rule to list of global validation rules
allRules()  : array<string|int, ValidationRule>
Returns all global validation rules.
append()  : mixed
assertValidSDL()  : mixed
assertValidSDLExtension()  : mixed
defaultRules()  : mixed
getRule()  : ValidationRule
Returns global validation rule by name. Standard rules are named by class name, so example usage for such rules:
isError()  : mixed
isValidLiteralValue()  : array<string|int, Error>
Utility which determines if a value literal node is valid for an input type.
sdlRules()  : mixed
securityRules()  : array<string|int, QuerySecurityRule>
validate()  : array<string|int, Error>
Primary method for query validation. See class description for details.
validateSDL()  : array<string|int, Error>
visitUsingRules()  : array<string|int, Error>
This uses a specialized visitor which runs multiple visitors in parallel, while maintaining the visitor skip and break API.
combineErrorMessages()  : string

Properties

Methods

append()

public static append(mixed &$arr, mixed $items) : mixed
Parameters
$arr : mixed
$items : mixed
Return values
mixed

assertValidSDLExtension()

public static assertValidSDLExtension(DocumentNode $documentAST, Schema $schema) : mixed
Parameters
$documentAST : DocumentNode
$schema : Schema
Return values
mixed

defaultRules()

public static defaultRules() : mixed
Return values
mixed

getRule()

Returns global validation rule by name. Standard rules are named by class name, so example usage for such rules:

public static getRule(string $name) : ValidationRule

$rule = DocumentValidator::getRule(GraphQL\Validator\Rules\QueryComplexity::class);

Parameters
$name : string
Return values
ValidationRule

isError()

public static isError(mixed $value) : mixed
Parameters
$value : mixed
Return values
mixed

isValidLiteralValue()

Utility which determines if a value literal node is valid for an input type.

public static isValidLiteralValue(Type $type, mixed $valueNode) : array<string|int, Error>

Deprecated. Rely on validation for documents co ntaining literal values.

Parameters
$type : Type
$valueNode : mixed
Tags
deprecated
Return values
array<string|int, Error>

validateSDL()

public static validateSDL(DocumentNode $documentAST[, Schema|null $schemaToExtend = null ][, array<string|int, ValidationRule>|null $rules = null ]) : array<string|int, Error>
Parameters
$documentAST : DocumentNode
$schemaToExtend : Schema|null = null
$rules : array<string|int, ValidationRule>|null = null
Tags
throws
Exception
Return values
array<string|int, Error>

visitUsingRules()

This uses a specialized visitor which runs multiple visitors in parallel, while maintaining the visitor skip and break API.

public static visitUsingRules(Schema $schema, TypeInfo $typeInfo, DocumentNode $documentNode, array<string|int, ValidationRule$rules) : array<string|int, Error>
Parameters
$schema : Schema
$typeInfo : TypeInfo
$documentNode : DocumentNode
$rules : array<string|int, ValidationRule>
Return values
array<string|int, Error>

combineErrorMessages()

private static combineErrorMessages(array<string|int, Error$errors) : string
Parameters
$errors : array<string|int, Error>
Return values
string

Search results