Releases: Ecodev/graphql-doctrine
Releases · Ecodev/graphql-doctrine
10.0.1
10.0.0
BREAKING CHANGE
- New
TypesInterface::loadType()
9.0.0
BREAKING CHANGE
- Upgrade to webonyx/graphql-php 15
TypesInterface::get()
return type is stricter- All breaking changes from webonyx/graphql-php also applies
8.1.2
Changes
- Not found entity will throw a
UserError
, not anError
8.1.1
Changes
- Minimal version is PHP 8.2
8.1.0
Added
- Add new
emptyStringAsHighest
to sorting
8.0.1
Changes
- Slighlty improve attribute documentation and typing
8.0.0
BREAKING CHANGE
All previously existing annotations are now PHP native Attribute
. This is a major breaking change and all annotations must be migrated to the new attributes.
Notable changes:
API\Argument
is now declared on the parameter itselfAPI\Filter
is used directly, possibly multiple times, without wrapping inAPI\Filters
API\Filters
is not necessary anymore and was droppedAPI\Sorting
requires a single class name, but can be used multiple times
Partially automated migration
The following is a configuration file for Rector that will migrate both Doctrine annotations and also GraphQL Doctrine annotations to attributes.
The migration for GraphQL Doctrine is imperfect, so Sorting
and Argument
will have to be adjusted manually afterward.
<?php
declare(strict_types=1);
use Rector\Config\RectorConfig;
use Rector\Php80\Rector\Class_\AnnotationToAttributeRector;
use Rector\Php80\Rector\Property\NestedAnnotationToAttributeRector;
use Rector\Php80\ValueObject\AnnotationPropertyToAttributeClass;
use Rector\Php80\ValueObject\AnnotationToAttribute;
use Rector\Php80\ValueObject\NestedAnnotationToAttribute;
return static function (RectorConfig $rectorConfig): void {
$rectorConfig->parallel();
$rectorConfig->sets([
\Rector\Doctrine\Set\DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES,
]);
$rectorConfig->ruleWithConfiguration(NestedAnnotationToAttributeRector::class, [
new NestedAnnotationToAttribute('GraphQL\\Doctrine\\Annotation\\Filters', [new AnnotationPropertyToAttributeClass('GraphQL\\Doctrine\\Attribute\\Filter')], \true),
new NestedAnnotationToAttribute('GraphQL\\Doctrine\\Annotation\\Sorting', [new AnnotationPropertyToAttributeClass('GraphQL\\Doctrine\\Attribute\\Sorting', 'classes', \true)]),
new NestedAnnotationToAttribute('API\Filters', [new AnnotationPropertyToAttributeClass('GraphQL\\Doctrine\\Attribute\\Filter')], \true),
new NestedAnnotationToAttribute('API\Sorting', [new AnnotationPropertyToAttributeClass('GraphQL\\Doctrine\\Attribute\\Sorting', 'classes', \true)]),
]);
$rectorConfig->ruleWithConfiguration(AnnotationToAttributeRector::class, [
new AnnotationToAttribute('GraphQL\\Doctrine\\Annotation\\Argument', 'GraphQL\\Doctrine\\Attribute\\Argument'),
new AnnotationToAttribute('GraphQL\\Doctrine\\Annotation\\Exclude', 'GraphQL\\Doctrine\\Attribute\\Exclude'),
new AnnotationToAttribute('GraphQL\\Doctrine\\Annotation\\Field', 'GraphQL\\Doctrine\\Attribute\\Field'),
new AnnotationToAttribute('GraphQL\\Doctrine\\Annotation\\FilterGroupCondition', 'GraphQL\\Doctrine\\Attribute\\FilterGroupCondition'),
new AnnotationToAttribute('GraphQL\\Doctrine\\Annotation\\Filter', 'GraphQL\\Doctrine\\Attribute\\Filter'),
new AnnotationToAttribute('GraphQL\\Doctrine\\Annotation\\Input', 'GraphQL\\Doctrine\\Attribute\\Input'),
new AnnotationToAttribute('API\Argument', 'GraphQL\\Doctrine\\Attribute\\Argument'),
new AnnotationToAttribute('API\Exclude', 'GraphQL\\Doctrine\\Attribute\\Exclude'),
new AnnotationToAttribute('API\Field', 'GraphQL\\Doctrine\\Attribute\\Field'),
new AnnotationToAttribute('API\FilterGroupCondition', 'GraphQL\\Doctrine\\Attribute\\FilterGroupCondition'),
new AnnotationToAttribute('API\Filter', 'GraphQL\\Doctrine\\Attribute\\Filter'),
new AnnotationToAttribute('API\Input', 'GraphQL\\Doctrine\\Attribute\\Input'),
]);
};
Special thanks
Special thanks to @themasch for starting this work.
7.3.0
Added
- Support
Collection<MyType>
syntax for PhpDoc
7.2.4
Changes
- Update PHP deps