NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #2685 most downloaded on Packagist
A PHP port of GraphQL reference implementation
Last release 5 months ago
14 Apr 2026
Ships fairly regularly
a new release about every 2 weeks
Rarely documented
notes for 3 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
182 releases · first in 2015
Nothing published for this version
Fix double Error wrapping when parsing variables
Don't call global field resolver on introspection fields
One column per quarter.
Added retrieving query complexity once query has been completed
QueryPlan can now be used on interfaces not only objects.
Fix coroutine executor when using with promise
Force int when setting max query depth
Reverted minor possible breaking change
Fixed an issue with NodeList iteration over missing keys
This release brings several breaking changes. Please refer to UPGRADE document for details.
This release brings several breaking changes. Please refer to UPGRADE document for details.
New features and notable changes:
category and extensions are displayed under extensions key when using default formatting (#389)GraphQL::useExperimentalExecutor().<br>
<br>
Please try it and post your feedback at https://github.com/webonyx/graphql-php/issues/397
(as it may become the default one in future)
<br>
<br>extendSchema from the reference implementation under GraphQL\Utils\SchemaExtender (#362)GraphQL::overrideStandardTypes(array $types) (#401)Debug::RETHROW_UNSAFE_EXCEPTIONS which would only rethrow app-specific exceptions (#337)Nothing published for this version
Added one more breaking change note in UPGRADE.md
data entry from response on top-level error (#281)Improvements:
operationName (instead of operation) in inputNothing published for this version
Allow objects with __toString in IDType
findBreakingChanges utility (see #199)
StandardServer: Support non pre-parsed PSR-7 request body (see #202)
Bugfix: provide descriptions to custom scalars (see #181)
Ability to override internal types via types option of the schema (see #174).
types option of the schema (see #174).This release brings little changes but there are two reasons why it is released as major version:
"false" accidentally sent in variables was converted to boolean true
and passed to field arguments. In the new version, such input will produce an error
(which is a spec-compliant behavior).Improvements:
BuildSchema now have reference to AST node with corresponding AST definition (in $astNode property).graphql file)Nothing published for this version
StandardServer improvement: do not raise an error when variables are passed as empty string (see #156)
This release brings several breaking changes. Please refer to UPGRADE document for details.
This release brings several breaking changes. Please refer to UPGRADE document for details.
New features and notable changes:
Improvements:
Deprecations and breaking changes - see UPGRADE document.
Nothing published for this version
Nothing published for this version
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)
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)
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)
AST\Node::__toString() will convert node to array recursively to encode to json without errorsBugfix: ResolveInfo::getFieldSelection() now correctly merges fragment selections (see #98)
ResolveInfo::getFieldSelection() now correctly merges fragment selections (see #98)Bugfix: ResolveInfo::getFieldSelection() now respects inline fragments
ResolveInfo::getFieldSelection() now respects inline fragmentsFixed 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)
This release brings several minor breaking changes. Please refer to UPGRADE document for details.
GraphQL\Server now properly sets promise adapter before executing queryGraphQL\Server (see #82)TypeResolutionStrategy (see #69)This release brings several minor breaking changes. Please refer to UPGRADE document for details.
New features:
null value (as required by latest GraphQL spec)path entry in errors produced by resolvers for better debuggingresolveType for interface/union is now allowed to return string name of typeImprovements:
Look at GitHub Releases Page.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →