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
$defaultRules
private
static array<string|int, ValidationRule>|null
$defaultRules
$initRules
private
static bool
$initRules
= false
$rules
private
static array<string|int, ValidationRule>
$rules
= []
$sdlRules
private
static array<string|int, ValidationRule>|null
$sdlRules
$securityRules
private
static array<string|int, QuerySecurityRule>|null
$securityRules
Methods
addRule()
Add rule to list of global validation rules
public
static addRule(ValidationRule $rule) : mixed
Parameters
- $rule : ValidationRule
Return values
mixed —allRules()
Returns all global validation rules.
public
static allRules() : array<string|int, ValidationRule>
Return values
array<string|int, ValidationRule> —append()
public
static append(mixed &$arr, mixed $items) : mixed
Parameters
- $arr : mixed
- $items : mixed
Return values
mixed —assertValidSDL()
public
static assertValidSDL(DocumentNode $documentAST) : mixed
Parameters
- $documentAST : DocumentNode
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
Return values
array<string|int, Error> —sdlRules()
public
static sdlRules() : mixed
Return values
mixed —securityRules()
public
static securityRules() : array<string|int, QuerySecurityRule>
Return values
array<string|int, QuerySecurityRule> —validate()
Primary method for query validation. See class description for details.
public
static validate(Schema $schema, DocumentNode $ast[, array<string|int, ValidationRule>|null $rules = null ][, TypeInfo|null $typeInfo = null ]) : array<string|int, Error>
Parameters
- $schema : Schema
- $ast : DocumentNode
- $rules : array<string|int, ValidationRule>|null = null
- $typeInfo : TypeInfo|null = null
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
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>