thecodingmachine/graphqlite
Write your GraphQL queries in simple to write controllers (using webonyx/graphql-php).
v8.3.1
3.5M downloads/mo
#2579 most downloaded on Packagist
thecodingmachine/graphqlite
What this package is like to depend on
Last release 1 months ago
16 Jul 2026
Ships fairly regularly
a new release about every 3 months
Some releases are documented
notes for 18 of 34 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
34 releases · first in 2019
5 releases in the last 12 months
see the full history below
Release timeline
34 releases · Apr 2019 to Jul 2026Releases
latest 34-
v8.3.116 Jul 2026Release notes
Open source →What's Changed
- Fix CI: update Symfony and PSR cache dependencies for no-framework example, make static analysis happy with possible types of callback params by @andrew-demb in #811
- chore: remove package-versions-deprecated dependency by @reydajp in #810
- Bump codecov/codecov-action from 6.0.0 to 7.0.0 by @dependabot[bot] in #808
- Update doctrine/coding-standard requirement from ^13.0 to ^13.0 || ^14.0 by @dependabot[bot] in #803
- Reuse reentrantly-registered type in mapAnnotatedObject (fixes first-request crash in long-lived workers) by @oojacoboo in #812
- feat: Add directive layer by @michael-georgiadis in #807
- fix: support #[Type] interfaces used as output types by @michael-georgiadis in #817
New Contributors
- @reydajp made their first contribution in #810
- @michael-georgiadis made their first contribution in #807
Full Changelog: v8.3.0...v8.3.1
-
v8.3.027 Apr 2026Release notes
Open source →What's Changed
- Introduce Undefined::VALUE by @oprypkhantc in #764
- Fix Security "this" variable on ExtendType fields by @charly-ffss in #801
- Docs: fix syntax error on example snippet by @andrew-demb in #802
New Contributors
- @charly-ffss made their first contribution in #801
Full Changelog: v8.2.0...v8.3.0
-
v8.2.022 Apr 2026Release notes
Open source →What's Changed
- [doc] Fix typo in old Doctrine Annotation syntax by @cvergne in #787
- Fix MutableInterfaceType not frozen in mutation-only return types by @oojacoboo in #790
- Fix #[Security] on ExtendType fields (source-injection array_combine crash) by @oojacoboo in #792
- Remove MyCLabs\Enum support by @oojacoboo in #794
- fix: drop @internal annotation from InputField by @oojacoboo in #795
- feat: explicit
descriptionattribute (+#[EnumValue]) + SchemaFactory docblock toggle by @oojacoboo in #793 - docs: alphabetize annotations reference by @oojacoboo in #798
- docs: fix broken anchors and stale Doctrine annotation references by @oojacoboo in #799
- docs: rename annotations-reference to attributes-reference by @oojacoboo in #800
Full Changelog: v8.1.3...v8.2.0
-
v8.1.318 Mar 2026Release notes
Open source →What's Changed
- fix: allow adding properties starting with 'set' by @supresys in #779
- fix: resolve built-in scalar types in BaseTypeMapper::mapNameToType by @oojacoboo in #784
New Contributors
- @supresys made their first contribution in #779
- @homersimpsons made their first contribution in #781
Full Changelog: v8.1.2...v8.1.3
-
v8.1.217 Dec 2025Release notes
Open source →What's Changed
- Bump actions/setup-node from 4 to 5 by @dependabot[bot] in #759
- Bump codecov/codecov-action from 5.5.0 to 5.5.1 by @dependabot[bot] in #758
- ✨ Improve exception message for unexpected null value - mention expected type by @andrew-demb in #762
- chore: symfony 8 dependencies by @jorgsowa in #770
- Bump actions/upload-artifact from 4 to 6 by @dependabot[bot] in #775
- Bump actions/cache from 4 to 5 by @dependabot[bot] in #774
- Bump JamesIves/github-pages-deploy-action from 4.7.3 to 4.7.6 by @dependabot[bot] in #773
- fix: validate files in FilesSnapshot before processing by @faizanakram99 in #772
New Contributors
Full Changelog: v8.1.1...v8.1.2
-
v8.1.126 Aug 2025Release notes
Open source →What's Changed
- Allow callable() as field deferring mechanism by @oprypkhantc in #739
- 📦 Use WeakMap instead of SplObjectStorage to simplify GC work by @andrew-demb in #745
- Fix callable type mapping to be Closure mapping by @oprypkhantc in #753
- don't purge the results from buffer by @januszmk in #752
New Contributors
Full Changelog: v8.1.0...v8.1.1
-
v8.1.026 Mar 2025Release notes
Open source →While there shouldn't be any BC issues in this release, I've bumped to 8.1 since there is improved/full PHP 8.4 support included in this release.
What's Changed
- Fixed Adapter class for compatibility with base ObjectType by @oojacoboo in #721
- PHP 8.4 Support by @oojacoboo in #722
- Fixed incorrect assertions by @oojacoboo in #723
- Houskeeping by @oojacoboo in #736
- Fix issue with kept deprecation reason by @jaapio in #735
New Contributors
Full Changelog: v8.0.0...v8.1.0
-
v8.0.018 Dec 2024Release notes
Open source →Breaking Changes
Improvements
- #668 Adds working examples to docs @shish
- #698 Performance optimizations and caching in development environments (
devMode()) @oprypkhantc]
Bug Fixes
Minor Changes
- #695 Removes dependecy to unmaintained thecodingmachine/cache-utils dependency @xyng
- #712 Caching improvements with use of multiple ClassFinders @andrew-demb
New Contributors
- @sudevva made their first contribution in #702
- @DocentBF made their first contribution in #705
- @docmg made their first contribution in #715
Full Changelog: v7.0.0...v8.0.0
Release notes
Open source →For all future changelog details, refer to the Releases. This CHANGELOG.md will no longer be independently maintained.
-
v7.0.020 Mar 2024Release notes
Open source →Breaking Changes
- #664 Replaces thecodingmachine/class-explorer with kcs/class-finder resulting in the
SchemaFactory::setClassNameMapperbeing renamed toSchemaFactory::setFinder. This now expects an instance ofKcs\ClassFinder\Finder\FinderInterfaceinstead ofMouf\Composer\ClassNameMapper. @fogrye
New Features
- #649 Adds support for
subscriptionoperations. @oojacoboo - #612 Automatic query complexity analysis. @oprypkhantc
- #611 Automatic persisted queries. @oprypkhantc
Improvements
- #658 Improves on prefetching for nested fields. @grynchuk
- #646 Improves exception handling during schema parsing. @fogrye
- #636 Allows the use of middleware on construtor params/fields. @oprypkhantc
- #623 Improves support for description arguments on types/fields. @downace
- #628 Properly handles
@paramannotations for generics support on field annotated constructor arguments. @oojacoboo - #584 Immutability improvements across the codebase. @oprypkhantc
- #588 Prefetch improvements. @oprpkhantc
- #606 Adds support for phpdoc descriptions and deprecation annotations on native enums. @mdoelker
- Thanks to @shish, @cvergne and @mshapovalov for updating the docs!
Minor Changes
Release notes
Open source →Breaking Changes
- #664 Replaces thecodingmachine/class-explorer with kcs/class-finder resulting in the
SchemaFactory::setClassNameMapperbeing renamed toSchemaFactory::setFinder. This now expects an instance ofKcs\ClassFinder\Finderinstead ofKcs\ClassFinder\Finder\FinderInterface. @fogrye
New Features
- #649 Adds support for
subscriptionoperations. @oojacoboo - #612 Automatic query complexity analysis. @oprypkhantc
- #611 Automatic persisted queries. @oprypkhantc
Improvements
- #658 Improves on prefetching for nested fields. @grynchuk
- #646 Improves exception handling during schema parsing. @fogrye
- #636 Allows the use of middleware on construtor params/fields. @oprypkhantc
- #623 Improves support for description arguments on types/fields. @downace
- #628 Properly handles
@paramannotations for generics support on field annotated constructor arguments. @oojacoboo - #584 Immutability improvements across the codebase. @oprypkhantc
- #588 Prefetch improvements. @oprpkhantc
- #606 Adds support for phpdoc descriptions and deprecation annotations on native enums. @mdoelker
- Thanks to @shish, @cvergne and @mshapovalov for updating the docs!
Minor Changes
- #639 Added support for Symfony 7. @janatjak
- #664 Replaces thecodingmachine/class-explorer with kcs/class-finder resulting in the
-
v6.2.319 Jun 2023 -
v6.2.205 May 2023Release notes
Open source →This is a very simple release. We support Doctrine annotation 1.x and we've deprecated
SchemaFactory::setDoctrineAnnotationReaderin favor of native PHP attributes. -
v6.2.113 Mar 2023Release notes
Open source →- Added support for new
Voidreturn types, allowing use ofvoidfrom operation resolvers. #574 - Improvements with authorization middleware #571
- Updated vendor dependencies: #580 #558
- Added support for new
-
v6.2.011 Mar 2023Release notes
Open source →Lots of little nuggets in this release! We're now targeting PHP ^8.1 and have testing on 8.2.
- Better support for union types and enums: #530, #535, #561, #570
- Various bug and interface fixes: #532, #575, #564
- GraphQL v15 required: #542
- Lots of codebase improvements, more strict typing: #548
A special thanks to @rusted-love and @oprypkhantc for their contributions.
-
v6.1.028 Oct 2022Release notes
Open source →A shoutout to @bladl for his work on this release, improving the code for better typing and PHP 8.0 syntax updates!
Breaking Changes
- #518 PSR-11 support now requires version 2
- #508 Due to some of the code improvements, additional typing has been added to some interfaces/classes. For instance,
RootTypeMapperInterface::toGraphQLOutputTypeandRootTypeMapperInterface::toGraphQLInputTypenow have the following signatures:
/** * @param (OutputType&GraphQLType)|null $subType * * @return OutputType&GraphQLType */ public function toGraphQLOutputType( Type $type, OutputType|null $subType, ReflectionMethod|ReflectionProperty $reflector, DocBlock $docBlockObj ): OutputType; /** * @param (InputType&GraphQLType)|null $subType * * @return InputType&GraphQLType */ public function toGraphQLInputType( Type $type, InputType|null $subType, string $argumentName, ReflectionMethod|ReflectionProperty $reflector, DocBlock $docBlockObj ): InputType;Improvements
- #510
- #508
-
v6.0.011 Jun 2022Nothing published for this version
-
v5.0.315 Jun 2022Nothing published for this version
-
v5.0.213 Nov 2021Nothing published for this version
-
v5.0.109 Nov 2021Nothing published for this version
-
v5.0.025 Oct 2021 -
v4.3.031 Aug 2021Release notes
Open source →Breaking change
- The method
setAnnotationCacheDir($directory)has been removed from theSchemaFactory. The annotation cache will use yourPsr\SimpleCache\CacheInterfacecompliant cache handler set through theSchemaFactoryconstructor.
Minor changes
- Removed dependency for doctrine/cache and unified some of the cache layers following a PSR interface.
- Cleaned up some of the documentation in an attempt to get things accurate with versioned releases.
- The method
-
v4.1.213 Dec 2020Nothing published for this version
-
v4.1.108 Dec 2020Nothing published for this version
-
v4.1.007 Dec 2020Release notes
Open source →Breaking change
There is one breaking change introduced in the minor version (this was important to allow PHP 8 compatibility).
- The ecodev/graphql-upload package (used to get support for file uploads in GraphQL input types) is now a "recommended" dependency only.
If you are using GraphQL file uploads, you need to add
ecodev/graphql-uploadto yourcomposer.json.
New features
- All annotations can now be accessed as PHP 8 attributes
- The
@deprecatedannotation in your PHP code translates into deprecated fields in your GraphQL schema - You can now specify the GraphQL name of the Enum types you define
- Added the possibility to inject pure Webonyx objects in GraphQLite schema
Minor changes
- Migrated from
zend/diactorostolaminas/diactoros - Making the annotation cache directory configurable
Miscellaneous
- Migrated from Travis to Github actions
- The ecodev/graphql-upload package (used to get support for file uploads in GraphQL input types) is now a "recommended" dependency only.
If you are using GraphQL file uploads, you need to add
-
v4.0.311 May 2020Nothing published for this version
-
v4.0.204 Feb 2020Nothing published for this version
-
v4.0.113 Jan 2020Nothing published for this version
-
v4.0.008 Jan 2020Release notes
Open source →This is a complete refactoring from 3.x. While existing annotations are kept compatible, the internals have completely changed.
New features
- You can directly annotate a PHP interface with
#[Type]to make it a GraphQL interface - You can autowire services in resolvers, thanks to the new
@Autowireannotation - Added user input validation (using the Symfony Validator or the Laravel validator or a custom
#[Assertion]annotation - Improved security handling:
- Unauthorized access to fields can now generate GraphQL errors (rather that schema errors in GraphQLite v3)
- Added fine-grained security using the
#[Security]annotation. A field can now be marked accessible or not depending on the context. For instance, you can restrict access to the field "viewsCount" of the typeBlogPostonly for post that the current user wrote. - You can now inject the current logged user in any query / mutation / field using the
#[InjectUser]annotation
- Performance:
- You can inject the Webonyx query plan in a parameter from a resolver
- You can use the dataloader pattern to improve performance drastically via the "prefetchMethod" attribute
- Customizable error handling has been added:
- You can throw many errors in one exception with
TheCodingMachine\GraphQLite\Exceptions\GraphQLAggregateException
- You can throw many errors in one exception with
- You can force input types using
@UseInputType(for="$id", inputType="ID!") - You can extend an input types (just like you could extend an output type in v3) using the new
#[Decorate]annotation - In a factory, you can exclude some optional parameters from the GraphQL schema
Many extension points have been added
- Added a "root type mapper" (useful to map scalar types to PHP types or to add custom annotations related to resolvers)
- Added "field middlewares" (useful to add middleware that modify the way GraphQL fields are handled)
- Added a "parameter type mapper" (useful to add customize parameter resolution or add custom annotations related to parameters)
New framework specific features:
Symfony
- The Symfony bundle now provides a "login" and a "logout" mutation (and also a "me" query)
Laravel
- Native integration with the Laravel paginator has been added
Internals
- The
FieldsBuilderclass has been split in many different services (FieldsBuilder,TypeHandler, and a chain of root type mappers) - The
FieldsBuilderFactoryclass has been completely removed. - Overall, there is not much in common internally between 4.x and 3.x. 4.x is much more flexible with many more hook points than 3.x. Try it out!
- You can directly annotate a PHP interface with
-
v3.1.410 Aug 2020Nothing published for this version
-
v3.1.329 Jun 2020Nothing published for this version
-
v3.1.226 Jun 2020Nothing published for this version
-
v3.1.114 Oct 2019Nothing published for this version
-
v3.1.014 Oct 2019Nothing published for this version
-
v3.0.105 Sep 2019Nothing published for this version
-
v3.0.023 Apr 2019Nothing published for this version