Full Changelog: https://github.com/thecodingmachine/graphqlite/compare/v8.2.0...v8.3.0
description attribute (+ #[EnumValue]) + SchemaFactory docblock toggle by @oojacoboo in https://github.com/thecodingmachine/graphqlite/pull/793Full Changelog: https://github.com/thecodingmachine/graphqlite/compare/v8.1.3...v8.2.0
Full Changelog: https://github.com/thecodingmachine/graphqlite/compare/v8.1.2...v8.1.3
Full Changelog: https://github.com/thecodingmachine/graphqlite/compare/v8.1.1...v8.1.2
Full Changelog: https://github.com/thecodingmachine/graphqlite/compare/v8.1.0...v8.1.1
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.
Full Changelog: https://github.com/thecodingmachine/graphqlite/compare/v8.0.0...v8.1.0
devMode()) @oprypkhantc]Full Changelog: https://github.com/thecodingmachine/graphqlite/compare/v7.0.0...v8.0.0
SchemaFactory::setClassNameMapper being renamed to SchemaFactory::setFinder. This now expects an instance of Kcs\ClassFinder\Finder\FinderInterface instead of Mouf\Composer\ClassNameMapper. @fogryesubscription operations. @oojacoboo[@param](https://github.com/param) annotations for generics support on field annotated constructor arguments. @oojacobooAdds support for Psr\Container 1.1 with #601
This is a very simple release. We support Doctrine annotation 1.x and we've deprecated SchemaFactory::setDoctrineAnnotationReader in favor of native PHP attributes.
Void return types, allowing use of void from operation resolvers. #574Lots of little nuggets in this release! We're now targeting PHP ^8.1 and have testing on 8.2.
A special thanks to @rusted-love and @oprypkhantc for their contributions.
A shoutout to @bladl for his work on this release, improving the code for better typing and PHP 8.0 syntax updates!
https://github.com/thecodingmachine/graphqlite/pull/518 PSR-11 support now requires version 2
https://github.com/thecodingmachine/graphqlite/pull/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](https://github.com/param) (OutputType&GraphQLType)|null $subType
*
* [@return](https://github.com/return) OutputType&GraphQLType
*/
public function toGraphQLOutputType(
Type $type,
OutputType|null $subType,
ReflectionMethod|ReflectionProperty $reflector,
DocBlock $docBlockObj
): OutputType;
/**
* [@param](https://github.com/param) (InputType&GraphQLType)|null $subType
*
* [@return](https://github.com/return) InputType&GraphQLType
*/
public function toGraphQLInputType(
Type $type,
InputType|null $subType,
string $argumentName,
ReflectionMethod|ReflectionProperty $reflector,
DocBlock $docBlockObj
): InputType;
https://github.com/thecodingmachine/graphqlite/pull/510 https://github.com/thecodingmachine/graphqlite/pull/508
This minor update adds support for Symfony 6 components
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!
https://github.com/thecodingmachine/graphqlite/pull/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 the default 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
#[Input] attributes.#[Field] defined functionality from output #[Type] objects to InputType annotated fields, via setters.Minor release to support missing properties for MagicFields with #402 and #405. Thanks @michael-vostrikov.
https://github.com/thecodingmachine/graphqlite/pull/406 Updated doc regarding changing namespace in the Symfony Bundle
A huge thanks goes out to @devmaslov for his work on #269.
Improvements:
GitHub Workflows:
Bugfix:
Bugfix release:
ocramius/package-versions ^2. This is needed to gain PHP 8 compatibility.A huge thanks to the many new contributors for this 4.1.0 release! @fezfez @MattBred @Kharhamel @flow-control @iganev @jensdenies @ezprit @ThibBal @gpupo @DanAtFh @mailopl @gulien @marhub This release is possible because of you all!
Breaking change:
There is one breaking change introduced in the minor version (this was important to allow PHP 8 compatibility).
ecodev/graphql-upload to your composer.json.New features:
[@deprecated](https://github.com/deprecated) annotation in your PHP code translates into deprecated fields in your GraphQL schemaMinor changes:
zend/diactoros to laminas/diactorosMiscellaneous:
Improvements:
Upgrade dependencies:
Upgrade dependencies
Dependencies widening:
Given the fact that enum types where almost non functionals in v4.0.1, and given the fact it is unlikely they have been used until now, I'm exceptionnaly introducing this BC break to introduce Enum types that are behaving in a more consistent way. See #235 for details.
Note: I do not have a clear visibility of the usage of this feature in the wild since the release of 4.0 a few weeks ago. My bet is noone will be impacted. If you are impacted by this breaking change, please fill an issue to let me know.
This is a complete refactoring from 3.x. While existing annotations are kept compatible, the internals have completely changed.
New features:
[@Type](https://github.com/Type) to make it a GraphQL interface[@Autowire](https://github.com/Autowire) annotation[@Assertion](https://github.com/Assertion) annotation[@Security](https://github.com/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 type BlogPost only for post that the current user wrote.[@InjectUser](https://github.com/InjectUser) annotationTheCodingMachine\GraphQLite\Exceptions\GraphQLExceptionTheCodingMachine\GraphQLite\Exceptions\GraphQLAggregateException[@Factory](https://github.com/Factory) annotations)[@UseInputType](https://github.com/UseInputType)(for="$id", inputType="ID!")[@Decorate](https://github.com/Decorate) annotationMany extension points have been added
New framework specific features:
Symfony:
Laravel:
Internals:
FieldsBuilder class has been split in many different services (FieldsBuilder, TypeHandler, and a
chain of root type mappers)FieldsBuilderFactory class has been completely removed.Improvements:
How can I help you explore Laravel packages today?