- StandardServer improvement: do not raise an error when variables are passed as empty string (see #156)
- Fixed infinite loop in the server (see #153)
This release brings several breaking changes. Please refer to UPGRADE document for details.
New features and notable changes:
- Changed minimum PHP version from 5.4 to 5.5
- Lazy loading of types without separate build step (see #69, see docs)
- PSR-7 compliant Standard Server (see docs)
- New default error formatting, which does not expose sensitive data (see docs)
- Ability to define custom error handler to filter/log/re-throw exceptions after execution (see docs)
- Allow defining schema configuration using objects with fluent setters vs array (see docs)
- Allow serializing AST to array and re-creating AST from array lazily (see docs)
- Apollo-style query batching support via server (see docs)
- Schema validation, including validation of interface implementations (see docs)
- Ability to pass custom config formatter when defining schema using GraphQL type language (see docs)
Improvements:
- Significantly improved parser performance (see #137 and #128)
- Support for PHP7 exceptions everywhere (see #127)
- Improved documentation and docblock comments
Deprecations and breaking changes - see UPGRADE document.
- Minor change to assist DataLoader project in fixing #150
- Fixed PHP notice and invalid conversion when non-scalar value is passed as ID or String type (see #121)
- Fixed bug occurring when enum
value
is bool, null or float (see #141)
- Ability to disable introspection (see #131)
- Fixed issue with query complexity throwing on invalid queries (see #125)
- Fixed "Out of memory" error when
resolveType
returns unexpected result (see #119)
- Bugfix: throw UserError vs InvariantViolationError for errors caused by client (see #123)
- Bugfix: use directives when calculating query complexity (see #113)
- Bugfix:
AST\Node::__toString()
will convert node to array recursively to encode to json without errors
- Bugfix:
ResolveInfo::getFieldSelection()
now correctly merges fragment selections (see #98)
- Bugfix:
ResolveInfo::getFieldSelection()
now respects inline fragments
- Fixed SyncPromiseAdapter::all() to not change the order of arrays (see #92)
- Tools to help building schema out of Schema definition language as well as printing existing schema in Schema definition language (see #91)
- Fixed Utils::assign() bug related to detecting missing required keys (see #89)
- Schema Definition Language: element descriptions can be set through comments (see #88)
- Fixed:
GraphQL\Server
now properly sets promise adapter before executing query
- Deferred resolvers (see #66, see docs)
- New Facade class with fluid interface:
GraphQL\Server
(see #82) - Experimental: ability to load types in Schema lazily via custom
TypeResolutionStrategy
(see #69)
This release brings several minor breaking changes. Please refer to UPGRADE document for details.
New features:
- Support for
null
value (as required by latest GraphQL spec) - Shorthand definitions for field and argument types (see #47)
path
entry in errors produced by resolvers for better debuggingresolveType
for interface/union is now allowed to return string name of type- Ability to omit name when extending type class (vs defining inline)
Improvements:
- Spec compliance improvements
- New docs and examples
Look at Github Releases Page.