Releases: thecodingmachine/graphqlite
v7.0.0
Breaking Changes
- #664 Replaces thecodingmachine/class-explorer with kcs/class-finder resulting in the
SchemaFactory::setClassNameMapper
being renamed toSchemaFactory::setFinder
. This now expects an instance ofKcs\ClassFinder\Finder\FinderInterface
instead ofMouf\Composer\ClassNameMapper
. @fogrye
New Features
- #649 Adds support for
subscription
operations. @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
@param
annotations 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
v6.2.3
v6.2.2
v6.2.1
v6.2.0
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.0
A shoutout to @bladl for his work on this release, improving the code for better typing and PHP 8.0 syntax updates!
Breaking Change:
#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::toGraphQLOutputType
and RootTypeMapperInterface::toGraphQLInputType
now 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:
v5.0.3
v6.0.0
Hurrah version 6 landing! There is a lot in this one and it's long overdue, but we finally hit a great spot, so without further adieu.
Version 6 brings #[Input]
defined InputTypes way forward and solidifies their overall functionality. #[Input]
attribute defined InputTypes are becoming my preferred way of defining these types. One single DTO or even Doctrine entity (if you so dare!) can be used to define both input and output types, with virtually no side-effects or missing feature functionality. Prior to version 6, #[Input]
defined types were rather limited. This is no longer the case! If you haven't had a chance yet, now is the time to give them a spin! 👍 A special thanks to @Lappihuan for all his teamwork on the InputType improvements. This wouldn't have happened without him!
In addition to the huge improvements made on InputTypes, we now have support for native Enums (shoutout to @dsavina), union return typing, and generics support!
Dependencies:
- 652440a Symfony ^6 is now supported.
Breaking Change:
-
#458 With
Input
annotated InputTypes, if you're using the same class for multiple types, like an update type and create type (also now a possibility), if you provide a name, you must also provide thedefault
parameter if you want the InputType to be the "default".#[Input] // Is default #[Input(default: false)] // Not default #[Input(name: 'SomethingInput', default: true] // Is default #[Input(name: 'UpdateSomethingInput'] // Not default
New Features:
- #409 Native Enum support! 🎉
- #467 Support native union return typing
- #468 Support generic phpdoc typed interables for output type values
- #435 New Custom InputType Validator offering flexibility in how you can handle validation on all of your
#[Input]
attributes. - #458 Recursive InputType resolving
- #466 Bring existing getter
#[Field]
defined functionality from output#[Type]
objects to InputType annotated fields, via setters.