Spring Evolution 🌷
Mark | Type | Count | Packages |
---|---|---|---|
☣ | Breaking changes | 46 | * , core , documentator , formatter , graphql , migrator , queue , testing |
Features | 20 | documentator , formatter , graphql , serializer , testing |
|
Performance Improvements | 2 | graphql |
|
Bug Fixes | 9 | documentator , graphql |
|
💀 | Deprecations | 5 | graphql |
Miscellaneous | 4 | * , documentator |
|
Code Refactoring | 30 | * , core , documentator , graphql , migrator , queue , testing |
The new release with a huge number of API changes addressed to make the code more clear and extendable. The majority are related to the GraphQL part and introduce several improvements (or breaking changes if you like 😁). Probably the most critical is the change of query syntax - the extra operators and fields were split into different types, which removes any possible conflicts between them (no way to solve it in v5). This is mean that the default syntax now is users(where: { field: { name: { equal: "..." } } }) { ... }
/comments(order: [ {field: {user: {name: asc}}} ])
instead of users(where: { name: { equal: "..." } } ) { ... }
/comments(order: [ {user: {name: asc}} ])
(notice to field: {...}
). The second - all enums were converted into PHP enums internally, so the case of member names followed by the PHP convention (Asc
instead of asc
). Also, note about input types auto-generation improvements and that the recommended way to add operators is inside GraphQL schema with extend scalar SearchByOperators*
(now should be possible to do all the same as in config).
Please follow Upgrade Guide to migrate 🤗 (and learn how to switch back to the previous query syntax 😉). You can ask a question and/or discuss in release disscussion.
All packages
Miscellaneous
- Better dependencies (#123, 0d1d914)
- Minimal version of
phpstan/phpdoc-parser
set to^1.25
(0b096ac) - Tools extracted from
composer.json
intovendor-bin
(#122, 76f629c)
Code Refactoring
Package core
Code Refactoring
- Removed deprecated
Helper::callAfterBoot()
(8357bc5) ☣ - Removed deprecated
InstanceCache
trait (cfa1db7) ☣
Package documentator
Features
IncludePackageList
(include:include:package-list
) will also detect path toUPGRADE.md
(should be in the same directory where README) (2f2adeb)template
parameter support forIncludeDocumentList
(include:document-list
) (af8f2e4)template
parameter support forIncludePackageList
(include:include:package-list
) (d2dbf7f) ☣
Bug Fixes
- Added missed
nikic/php-parser
requirement + compatibility with v5 (abcae15) requirements
command will use localcomposer.json
forHEAD
(80486bd)
Miscellaneous
- Removed
phpdocumentor/reflection-docblock
, thephpstan/phpdoc-parser
will be used instead (6faba1b)
Code Refactoring
- Instruction classes reorganization (9c8a066) ☣
- Instruction templates reorganization (f4a00ee) ☣
- Removed deprecated
LastDragon_ru\LaraASP\Documentator\Preprocessor\Instruction
(52f6d87) ☣
Package formatter
Features
duration()
fraction seconds and new format syntax support (#108, 9bc90af) ☣Formatter::filesize()
support for robibyte (RiB) and quebibyte (QiB) (#106, 56b83fa) ☣time()
/date()
/datetime()
will accept onlystring
as$format
name (5612367) ☣
Package graphql
Features
- Ability to disable operators (#113, 01c7f71)
- Input type auto-generation improvements (#114, #127, accd8bf) ☣
- Root types for
@searchBy
and@sortBy
(#118, #129, 693df03) ☣ - Setting
builder.allowed_directives
will be applied for Implicit types only. For the Explicit types, all directives will be copied (#132, 6839e8f) - Type extensions improvements (#136, 1703d95) ☣
- Universal builder property resolver (#120, #87, f5934ef) ☣
@sortBy
: Added (missed)@sortByExtendOperators
directive (0b1652c)@sortBy
: Default nulls ordering (#110, #111, e528aec) ☣@sortBy
: Nulls ordering operatorsnullsFirst
/nullsLast
(#119, e260593)@sortBy
: Support ofOperators::Object
(467b023) ☣@stream
:ResolveInfo::enhanceBuilder()
will be used only if really necessary (also, it is faster, and required to enhance/support any builder) (08f0e26) ☣
Performance Improvements
Bug Fixes
- Detection of operator-directive for implicit type (b5a777e)
- Lighthouse v6.34.0 compatibility (failed tests) (ce67672)
@searchBy
: Directive locations (b56b21b) ☣@sortBy
: Directive locations (4d4e8ce) ☣@sortBy
: Possible too long alias name for joined relation (73c87ec)@sortBy
:Random
order will be available only for Query and Eloquent builders (7ffc919)@sortBy
:Str::camel()
replaced toStr::studly()
as it should be (dc5b70f)
Deprecations 💀
LastDragon_ru\LaraASP\GraphQL\Builder\Contracts\Scout\FieldResolver
, useLastDragon_ru\LaraASP\GraphQL\Builder\Contracts\BuilderPropertyResolver
instead (122f29b) ☣@searchBy
:@searchByOperatorRelation
, the@searchByOperatorRelationship
should be used instead (8cdb50e)@searchBy
:@searchByOperators
(the@searchByExtendOperators
should be used instead) (a710b68)@searchBy
:enum SearchByTypeFlag { yes }
/enum SortByTypeFlag { yes }
, please useenum SearchByTypeFlag { Yes }
/enum SortByTypeFlag { Yes }
instead (75639af)@sortBy
:enum SortByTypeDirection { asc, desc }
, please useenum SortByTypeDirection { Asc, Desc }
instead (c9a515b)
Code Refactoring
- Ability to override type of
*FieldSource
/*ArgumentSource
(760a71d) ☣ - Added
TypeSource::isObject()
(0c53721) ☣ - Added
TypeSource::isScalar()
,TypeSource::isEnum()
(0600d0d) ☣ - Added parent to the
Source
(30f3e95) ☣ - API Improvements (#130, 7a43a09) ☣
AstManipulationBuilderInfo
=>HandlerContextBuilderInfo
(b8eacb2) ☣AstManipulator::getOriginTypeDefinition()
=> (more useful)AstManipulator::getOriginType()
(2f29617) ☣- Better names for (internal) directives (#128, abef051) ☣
- Builder Context (#116, 79b3bf0) ☣
- Context moved to
LastDragon_ru\LaraASP\GraphQL\Builder\Context
namespace (e65075d) ☣ InputObject::getFieldDirectiveOperator()
=>InputObject::getFieldOperatorDirective()
(e0f97a8) ☣Manipulator::getPlaceholderTypeDefinitionNode()
=>AstManipulator::getOriginTypeDefinition()
(342a170) ☣Operator:isBuilderSupported()
=>Operator:isAvailable()
(55d486f) ☣OperatorDirective::getDirectiveLocations()
renamed toOperatorDirective::getLocations()
(2bfe45c) ☣- Operators (#133, 4e91f28) ☣
Property
notStringable
anymore (fd5d8ef) ☣- Removed deprecated
ClientException::getCategory()
(24cb66f) ☣ @searchBy
:@searchByOperatorRelation
renamed to@searchByOperatorRelationship
(0574fd2) ☣@searchBy
:Operators::Condition
=>Operators::Object
,scalar SearchByCondition
=>scalar SearchByObject
(7c63703) ☣@sortBy
:EloquentSorter
code simplification (removed unnecessary check that relation supported) (2682e5b) ☣
Package migrator
Code Refactoring
- Removed deprecated
SmartMigrator::isAnonymousMigrationsSupported()
(5cc4e93) ☣
Package queue
Code Refactoring
- Package removed. Please use
lastdragon-ru/lara-asp-core
instead (fdf300c) ☣
Package serializer
Features
BackedEnum
support out the box (795f9bf)UnitEnum
support (will be serialized/deserialized as/from the case name) (33098bd)