NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #457 most downloaded on Packagist
A PHP port of GraphQL reference implementation
Last release today
06 Oct 2026
Release timing varies
gaps range from 8 days to 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
203 releases · first in 2015
Add Printer::stripIgnoredCharacters() to remove characters that do not change a document's meaning #1985
Strip tab-only leading and trailing lines from block string values #1984
One column per quarter.
Speed up Lexer by skipping runs of horizontal whitespace in one scan #1963
Lexer by skipping runs of horizontal whitespace in one scan #1963Revert reading properties of objects that implement \ArrayAccess because it exposed internal object state as field values #1958
\ArrayAccess because it exposed internal object state as field values #1958If an object implements \ArrayAccess , check both array value and property #1531
\ArrayAccess, check both array value and property #1531Avoid creating an AMPHP Fiber for each AmpFutureAdapter continuation and aggregate #1954
AmpFutureAdapter continuation and aggregate #1954Optimize Lexer::readString() to bulk-scan ordinary bytes with strcspn() instead of decoding one UTF-8 character at a time #1948
Lexer::readString() to bulk-scan ordinary bytes with strcspn() instead of decoding one UTF-8 character at a time #1948Allow setting per-schema built-in scalar overrides explicitly via SchemaConfig option scalarOverrides , avoiding the resolution of lazily provided typ
SchemaConfig option scalarOverrides, avoiding the resolution of lazily provided types on built-in scalar lookups #1927Preserve deprecationReason when rebuilding input values from introspection in BuildClientSchema #1945
deprecationReason when rebuilding input values from introspection in BuildClientSchema #1945Make Promise and PromiseAdapter generic over the adopted promise type #1941
Fix SingleFieldSubscription validation to expand fragments before counting root fields, reject introspection fields, and reject @skip / @include at th
SingleFieldSubscription validation to expand fragments before counting root fields, reject introspection fields, and reject @skip/@include at the subscription root #1930Add @specifiedBy built-in directive and ScalarType::$specifiedByURL property #1913
@specifiedBy built-in directive and ScalarType::$specifiedByURL property #1913Denial of Service via stack overflow from deeply nested queries in the parser https://github.com/webonyx/graphql-php/security/advisories/GHSA-r7cg-qjj
Denial of Service via quadratic complexity in OverlappingFieldsCanBeMerged validation through inline fragments https://github.com/webonyx/graphql-php/
OverlappingFieldsCanBeMerged validation through inline fragments https://github.com/webonyx/graphql-php/security/advisories/GHSA-fc86-6rv6-2jpmFix "Cannot traverse an already closed generator" in Schema::getTypeMap() https://github.com/webonyx/graphql-php/pull/1903
Schema::getTypeMap() https://github.com/webonyx/graphql-php/pull/1903Implement AmpFutureAdapter for integration with AMPHP v3 https://github.com/webonyx/graphql-php/pull/1900
AmpFutureAdapter for integration with AMPHP v3 https://github.com/webonyx/graphql-php/pull/1900Denial of Service via quadratic complexity in OverlappingFieldsCanBeMerged validation https://github.com/webonyx/graphql-php/security/advisories/GHSA-
OverlappingFieldsCanBeMerged validation https://github.com/webonyx/graphql-php/security/advisories/GHSA-68jq-c3rv-pcrrPrioritize count error over null error in @oneOf coercion https://github.com/webonyx/graphql-php/pull/1891
@oneOf coercion https://github.com/webonyx/graphql-php/pull/1891Apply per-schema built-in scalar overrides without assertValid() https://github.com/webonyx/graphql-php/pull/1886
assertValid() https://github.com/webonyx/graphql-php/pull/1886Exclusively support types for per-schema built-in scalar overrides, not typeLoader https://github.com/webonyx/graphql-php/pull/1884
types for per-schema built-in scalar overrides, not typeLoader https://github.com/webonyx/graphql-php/pull/1884parseLiteral not called on per-schema built-in scalar overrides for inline arguments https://github.com/webonyx/graphql-php/pull/1880Fix variable validation and input coercion for per-schema scalar overrides https://github.com/webonyx/graphql-php/pull/1876
Deprecate Type::overrideStandardTypes() in favor of per-schema scalar overrides https://github.com/webonyx/graphql-php/pull/1869
types config or typeLoader, without global side effects https://github.com/webonyx/graphql-php/pull/1869Type::builtInScalars() and Type::BUILT_IN_SCALAR_NAMES aligning with GraphQL spec terminology https://github.com/webonyx/graphql-php/pull/1869Directive::builtInDirectives() and Directive::isBuiltInDirective() aligning with GraphQL spec terminology https://github.com/webonyx/graphql-php/pull/1869Type::overrideStandardTypes() in favor of per-schema scalar overrides https://github.com/webonyx/graphql-php/pull/1869Type::getStandardTypes() in favor of Type::builtInScalars() https://github.com/webonyx/graphql-php/pull/1869Type::STANDARD_TYPE_NAMES in favor of Type::BUILT_IN_SCALAR_NAMES https://github.com/webonyx/graphql-php/pull/1869Directive::getInternalDirectives() in favor of Directive::builtInDirectives() https://github.com/webonyx/graphql-php/pull/1869Directive::isSpecifiedDirective() in favor of Directive::isBuiltInDirective() https://github.com/webonyx/graphql-php/pull/1869Use PHP 7.4 compatible syntax in attribute classes https://github.com/webonyx/graphql-php/pull/1847
Improve performance 6% by lessening is_array and instanceof checks https://github.com/webonyx/graphql-php/pull/1845
is_array and instanceof checks https://github.com/webonyx/graphql-php/pull/1845Add support for adding description to schema https://github.com/webonyx/graphql-php/pull/1834
Fix query complexity for fragments defined after operations https://github.com/webonyx/graphql-php/pull/1826
Remove pass-by-reference for $result in ReferenceExecutor https://github.com/webonyx/graphql-php/pull/1780
$result in ReferenceExecutor https://github.com/webonyx/graphql-php/pull/1780Do not escape forward slashes in Printer::printDescription https://github.com/webonyx/graphql-php/pull/1824
Printer::printDescription https://github.com/webonyx/graphql-php/pull/1824Restore SyncPromise backwards compatibility https://github.com/webonyx/graphql-php/pull/1823
SyncPromise backwards compatibility https://github.com/webonyx/graphql-php/pull/1823Deprecate GraphQL\Deferred::create() in favor of constructor https://github.com/webonyx/graphql-php/pull/1805
Deferred execution https://github.com/webonyx/graphql-php/pull/1805GraphQL\Deferred::create() in favor of constructor https://github.com/webonyx/graphql-php/pull/1805Optimize Lexer name tokenization https://github.com/webonyx/graphql-php/pull/1813
Lexer name tokenization https://github.com/webonyx/graphql-php/pull/1813Fix PHP 7.4 compatibility broken by \Stringable interface https://github.com/webonyx/graphql-php/pull/1810
\Stringable interface https://github.com/webonyx/graphql-php/pull/1810Revert Deferred memory usage optimization https://github.com/webonyx/graphql-php/pull/1790
Deferred memory usage optimization https://github.com/webonyx/graphql-php/pull/1790Optimize Deferred memory usage with incremental queue processing https://github.com/webonyx/graphql-php/pull/1790
Deferred memory usage with incremental queue processing https://github.com/webonyx/graphql-php/pull/1790Ignore Introspection queries in QueryComplexity rule https://github.com/webonyx/graphql-php/pull/1788
Add missing return types in HasFieldsTypeImplementation https://github.com/webonyx/graphql-php/pull/1783
HasFieldsTypeImplementation https://github.com/webonyx/graphql-php/pull/1783Call AbstractType::resolveValue before AbstractType::resolveType https://github.com/webonyx/graphql-php/pull/1781
AbstractType::resolveValue before AbstractType::resolveType https://github.com/webonyx/graphql-php/pull/1781Introduce resolveValue method to Interface and Union types https://github.com/webonyx/graphql-php/pull/1776
resolveValue method to Interface and Union types https://github.com/webonyx/graphql-php/pull/1776Allow passing NonNull to Type::nonNull() https://github.com/webonyx/graphql-php/pull/1757
NonNull to Type::nonNull() https://github.com/webonyx/graphql-php/pull/1757Improve Type::getNamedType() return type https://github.com/webonyx/graphql-php/pull/1756
Type::getNamedType() return type https://github.com/webonyx/graphql-php/pull/1756Allow replacing a Node with a NodeList in Visitor https://github.com/webonyx/graphql-php/pull/1754
Node with a NodeList in Visitor https://github.com/webonyx/graphql-php/pull/1754Fix NodeVisitor return type by allowing Node https://github.com/webonyx/graphql-php/pull/1752
NodeVisitor return type by allowing Node https://github.com/webonyx/graphql-php/pull/1752Make class Printer fully static https://github.com/webonyx/graphql-php/pull/1749
Printer fully static https://github.com/webonyx/graphql-php/pull/1749Do not escape forward slashes in Printer::doPrint https://github.com/webonyx/graphql-php/pull/1748
Printer::doPrint https://github.com/webonyx/graphql-php/pull/1748Keep isOneOf directive when extending input objects with SchemaExtender https://github.com/webonyx/graphql-php/pull/1745
isOneOf directive when extending input objects with SchemaExtender https://github.com/webonyx/graphql-php/pull/1745Add argument includeDeprecated to introspection field __Directive.args https://github.com/webonyx/graphql-php/pull/1738/commits/0dd03675dc7c971abfad86…
includeDeprecated to introspection field __Directive.args https://github.com/webonyx/graphql-php/pull/1738/commits/0dd03675dc7c971abfad86cafaf2da353778529fincludeDeprecated arguments in introspection fields non-nullable with default value false https://github.com/webonyx/graphql-php/pull/1738/commits/851ddb55d722035904191705b6d62ba56950680cMake querying isOneOf optional in introspection query https://github.com/webonyx/graphql-php/pull/1737
isOneOf optional in introspection query https://github.com/webonyx/graphql-php/pull/1737Add missing isOneOf to introspection query https://github.com/webonyx/graphql-php/pull/1729
isOneOf to introspection query https://github.com/webonyx/graphql-php/pull/1729Output @oneOf directive in SchemaPrinter https://github.com/webonyx/graphql-php/pull/1727
@oneOf directive in SchemaPrinter https://github.com/webonyx/graphql-php/pull/1727Add support for @oneOf input object directive - enables "input unions" where exactly one field must be provided https://github.com/webonyx/graphql-php
@oneOf input object directive - enables "input unions" where exactly one field must be provided https://github.com/webonyx/graphql-php/pull/1715Avoid unnecessary @throws annotations for known correct configuration https://github.com/webonyx/graphql-php/pull/1716
@throws annotations for known correct configuration https://github.com/webonyx/graphql-php/pull/1716Add keys type and unions to ResolveInfo::getFieldSelectionWithAliases result https://github.com/webonyx/graphql-php/pull/1681
type and unions to ResolveInfo::getFieldSelectionWithAliases result https://github.com/webonyx/graphql-php/pull/1681Handle fields that return lists in ResolveInfo::getFieldSelectionWithAliases https://github.com/webonyx/graphql-php/pull/1664
ResolveInfo::getFieldSelectionWithAliases https://github.com/webonyx/graphql-php/pull/1664Add method getFieldSelectionWithAliases to class ResolveInfo https://github.com/webonyx/graphql-php/pull/1648
getFieldSelectionWithAliases to class ResolveInfo https://github.com/webonyx/graphql-php/pull/1648Reset static caches of instances using standard types when overriding them https://github.com/webonyx/graphql-php/pull/1632
Propagate error messages of client-safe exceptions during parseValue https://github.com/webonyx/graphql-php/pull/1624
parseValue https://github.com/webonyx/graphql-php/pull/1624Allow customizing PhpEnumType https://github.com/webonyx/graphql-php/pull/1623
Make field args mapper optional https://github.com/webonyx/graphql-php/pull/1622
Create field args mapper and cache args resolution https://github.com/webonyx/graphql-php/pull/1587
Add field config decorator when building schema from SDL https://github.com/webonyx/graphql-php/pull/1590
Your coding agent can read these notes before it upgrades. Set up the MCP server →