Releases: LastDragon-ru/lara-asp
Releases · LastDragon-ru/lara-asp
Bugfixes 🐛
Mark |
Type |
Count |
Packages |
|
Bug Fixes |
3 |
documentator , testing |
Package documentator
Bug Fixes
null
output in generated help of lara-asp-documentator:preprocess
command (8a017bf)
- Parsing
{@see}
inline tags while help generation for lara-asp-documentator:preprocess
command (ebc708f)
Package testing
Bug Fixes
\LastDragon_ru\LaraASP\Testing\Utils\TestData
relative paths (./
, ../
) handling (3d81688)
Autumn Evolution 🍂
Mark |
Type |
Count |
Packages |
☣ |
Breaking changes |
31 |
* , core , documentator , formatter , graphql , migrator , serializer , spa |
|
Features |
34 |
core , dev , documentator , serializer |
|
Performance Improvements |
4 |
documentator |
|
Bug Fixes |
19 |
core , documentator , graphql , serializer |
💀 |
Deprecations |
8 |
core , documentator , migrator , serializer |
|
Miscellaneous |
5 |
* , dev |
|
Code Refactoring |
18 |
* , core , documentator , formatter , graphql , migrator , serializer , spa |
This version is the deep refactoring of how the Application/Config and other global Laravel things are injected into classes (no implicit dependencies, see #151), how the package configs looks (no more untyped arrays, see #152), how the Formatter
works internally (simplification and more extendabilities). And, probably the most interesting part, is improvements of the Documentator
- the Processor
is used for all tasks, the links will be correctly updated when one document is included into another; code links support, etc.
Please follow Upgrade Guide to migrate 🤗. You can ask a question and/or discuss in release disscussion.
All packages
Miscellaneous
- Migrate to
.gitattributes
instead of exclude-from-classmap
(8d91470)
- Minimal version of
nikic/php-parser
set to ^5.0
(8311940)
- Minimal version of
symfony/serializer
set to ^6.4.0
(related to 67389ca) (23ed588)
- Relative links validation in Markdown documents (#171, ae5403d)
Code Refactoring
Package core
Features
\LastDragon_ru\LaraASP\Core\Helpers\Translator
will not change keys with namespace (::
) (df4e159)
\LastDragon_ru\LaraASP\Core\Path\FilePath
and \LastDragon_ru\LaraASP\Core\Path\FilePath\DirectoryPath
(replacement of \LastDragon_ru\LaraASP\Core\Utils\Path
util) (8323a04)
- Added
\LastDragon_ru\LaraASP\Core\Utils\Cast::toObject()
and \LastDragon_ru\LaraASP\Core\Utils\Cast::toObjectNullable()
(d477a5c)
- Added
Cast::toNullable()
(e65d0ff)
- Added
File::isFile()
and File::isDirectory()
(6862a0a)
Path::isNormalized()
(d6ded7f)
Bug Fixes
Path::getRelativePath()
will return correct path when $root
is file (9478b44)
Deprecations 💀
\LastDragon_ru\LaraASP\Core\Provider\WithConfig::bootConfig()
. Please use \LastDragon_ru\LaraASP\Core\Provider\WithConfig::registerConfig()
instead (a94b1d8)
\LastDragon_ru\LaraASP\Core\Utils\ConfigMerger
(there is no replacement) (1215419)
- The
\LastDragon_ru\LaraASP\Core\Utils\Path
is deprecated. Please use \LastDragon_ru\LaraASP\Core\Path\FilePath
/\LastDragon_ru\LaraASP\Core\Path\DirectoryPath
instead (a192b7f)
Code Refactoring
Package dev
Features
Container::call()
return type detection (1a924a3)
Miscellaneous
- Removed
dev:example
command (the Runner
contract will be used to run examples) (75b2703)
Package documentator
Features
--exclude
option for lara-asp-documentator:preprocess
(58b80de)
\LastDragon_ru\LaraASP\Documentator\Markdown\Location\Append
can be used to append text to the Document
(1f603be)
\LastDragon_ru\LaraASP\Documentator\Processor\Tasks\CodeLinks\Links\ClassConstantLink
also support enum
cases (0ec6c16)
- Added
Text::getPathTitle()
(converts filename into document title) (cbb7458)
- Better block id for
Preprocess
task (#189, f0164fd)
- Command
lara-asp-documentator:commands
will update relative links inside generated documents (76fd9b9)
- Composer
Package
helper (ddadefa)
Editor:mutate()
can add new lines (eaf3b34)
include:artisan
instruction (#166, 59f4acb)
include:document-list
/include:package-list
instruction can sort documents/packages (#192, 7b04d49) ☣
- Markdown
Document
mutations (#179, #180, 0e2b70d) ☣
Markdown
helper to easy document modification (#179, 1512b81)
- New
include:example
runner (#165, 3b74c52) ☣
- New helper
Text
(0f1db84)
- New markdown mutation
\LastDragon_ru\LaraASP\Documentator\Markdown\Mutations\HeadingsLevel
(ceefd12)
Preprocess
instructions priority (#194, 4336f6c) ☣
Preprocess
task will use Markdown
parser instead of regexps (#186, 7b0c766) ☣
Preprocessor
tasks will properly re-link relative links (926ecb9) ☣
- Processor
Task
can postpone processing until all other files (#172, 9028c23) ☣
Processor
"Code Links" task (#187, dbcab1a) ☣
Processor
File
metadata (#181, 4d6c019) ☣
Processor
Optional
dependency (a25feab)
Processor
wildcard tasks support (124891b)
- The
lara-asp-documentator:preprocess
command will use \LastDragon_ru\LaraASP\Documentator\Processor\Contracts\Factory
to obtain instance of \LastDragon_ru\LaraASP\Documentator\Processor\Processor
(6c544c1)
- The Processor (#162, 2fdac35)
Performance Improvements
Document::mutate()
will clone document only once (73897b7)
- Lazy
Document
parsing (edcbd0b)
- Minor
Markdown
mutations improvements (#184, 460883e) ☣
Processor
Lazy tasks & (weak) FileSystem cache (#185, b2d206c)
Bug Fixes
@link
/@see
in php docblock will be replaced to FQN (prefixed by \
) (5864fdc)
\LastDragon_ru\LaraASP\Documentator\Processor\Exceptions\FileTaskFailed
message (2d18aa5)
\LastDragon_ru\LaraASP\Documentator\Processor\Tasks\CodeLinks\Links\Factory::create()
will trim whitespaces (8fc2bec)
\LastDragon_ru\LaraASP\Documentator\Processor\Tasks\CodeLinks\Task
source file path resolution (42b2adf)
Document::toSplittable()
will remove self links (+ added SelfLinksRemove
mutation) (7842200)
include:artisan
output when verbosity
is not normal
(024f9c5)
- Location detection/update for links with inline nodes inside label (#182, a137201) ☣
- Markdown
Document
EOF after parse/mutate (9c0fafd)
- Markdown
Editor:mutate()
will rtrim all changed lines to avoid whitespaces at the end of the line (571c1a1)
- Markdown
Editor
overlaps calculation (b76ee17)
- Markdown
Move
mutation will not update self links/references (953c327)
- More accurate
CodeLinks
similarity check (#193, b5497d6) ☣
Preprocessor
regexp to find instruction when <target "value">
(32e0d3b)
Preprocessor
will store original target
in Context
(75d30bd)
Reference
will include next empty line (the same as all other blocks) (0a20267)
- Variables names for
include:artisan
(no wrapping by ""
) (3da6fea)
Deprecations 💀
Markdown
helper. Please use MarkdownDocument
/Text
helpers instead (caeff9e)
- The
LastDragon_ru\LaraASP\Documentator\Processor\Metadata\PhpDocBlock
, please use LastDragon_ru\LaraASP\Documentator\Processor\Metadata\PhpClassMarkdown
instead (a72fefc) ☣
Code Refactoring
\LastDragon_ru\LaraASP\Documentator\Processor\Metadata\Composer
metadata will return \LastDragon_ru\LaraASP\Documentator\Composer\Package
instead of \LastDragon_ru\LaraASP\Documentator\Composer\ComposerJson
(a79801b) ☣
- Dependencies classes rename (3268d70) ☣
Preprocessor
Instruction
contract simplification (no Resolver
) (#174, 8c3d7f9) ☣
Preprocessor
moved to Processor
namespace (#176, f953237) ☣
Preprocessor
swit...
Read more
Bugfixes 🐛
Mark |
Type |
Count |
Packages |
|
Bug Fixes |
2 |
documentator , graphql |
Package documentator
Bug Fixes
\LastDragon_ru\LaraASP\Documentator\Processor\Exceptions\FileTaskFailed
message (995d2db)
Package graphql
Bug Fixes
SchemaBuilderWrapper
fix for "nuwave/lighthouse:6.45.0" (5b80fa0)
Bugfixes 🐛
Mark |
Type |
Count |
Packages |
|
Bug Fixes |
2 |
documentator , graphql |
Package documentator
Bug Fixes
Preprocessor
regexp to find instruction when <target "value">
(16686b9)
Package graphql
Bug Fixes
HasOneThrough
sorting fix (Laravel v11.15.0 compatibility) (bbecb7c)
The Processor 👨🦰
Mark |
Type |
Count |
Packages |
|
Features |
3 |
core , documentator , serializer |
|
Bug Fixes |
1 |
core |
💀 |
Deprecations |
1 |
serializer |
Package core
Features
Bug Fixes
Path::getRelativePath()
will return correct path when $root
is file (cf82d55)
Package documentator
Features
Package serializer
Features
- New
Serialized
attribute/accessors/mutator (5bb6e1c)
Deprecations 💀
\LastDragon_ru\LaraASP\Serializer\Casts\AsSerializable
, please use \LastDragon_ru\LaraASP\Serializer\Casts\Serialized
attribute instead (db030b9)
May Day 🛠
Mark |
Type |
Count |
Packages |
|
Features |
4 |
core , documentator , graphql , testing |
|
Performance Improvements |
1 |
graphql |
|
Bug Fixes |
5 |
graphql-printer , migrator , testing |
💀 |
Deprecations |
1 |
graphql |
|
Miscellaneous |
1 |
dev |
Package core
Features
- Octane compatible resolvers for
Application
, Container
and Config
(e12355a)
Package dev
Miscellaneous
- Removed
dev:directive
command (f113cb2)
Package documentator
Features
- New instruction
include:graphql-directive
(#158, b054625)
Package graphql
Features
Performance Improvements
Printer
registered as a scopedIf
(1e6a623)
Deprecations 💀
- Passing
Type
into AstManipulator::addTypeDefinition()
and returning it from TypeDefinition::getTypeDefinition()
, the TypeReference
should be used instead (the main reason is to avoid possible losing of Type
properties) (9e5f219)
Package graphql-printer
Bug Fixes
- Directive filters independent from
Settings::isPrintDirectiveDefinitions()
(90194c4)
substr()
=> mb_substr()
(c64a81f)
Package migrator
Bug Fixes
- Registration of
RawMigrationCreator
(5552218)
SmartMigrator::getMigrationFiles()
path normalization (c7bbaf0)
Package testing
Features
Bug Fixes
WithTestObject
will correctly remove table after test (5f3b1ab)
Laravel v11 Support 🧐
Mark |
Type |
Count |
Packages |
|
Features |
4 |
* , dev , documentator |
|
Bug Fixes |
1 |
spa |
💀 |
Deprecations |
6 |
documentator , spa , testing |
|
Miscellaneous |
6 |
* |
All packages
Features
Miscellaneous
composer dependency analyser
tool (#140, 5192462)
composer.json
normalization (#145, 3e30a97)
- Deprecated class/methods marked by
trigger_deprecation()
(#148, 4979a4e)
- Minimal version of
laravel/framework
set to ^10.34.0
(66e86e9)
- Removed
doctrine/dbal
dependency (27da03c)
- Switch to individual
illuminate/*
packages instead of laravel/framework
(#117, #141, ce80ae2)
Package dev
Features
Package documentator
Features
- Fetching instruction parameters via Reflection API/PhpDoc (#149, 639792b)
requirements
command will support package merging (07adf1d)
Deprecations 💀
LastDragon_ru\LaraASP\Documentator\Utils\Path
(please use LastDragon_ru\LaraASP\Core\Utils\Path
instead) (#146, d2c7592)
ParameterizableInstruction::getParametersDescription()
(phpdoc should be used instead) (b66d8e4)
Package spa
Bug Fixes
- Support
Illuminate\Validation\InvokableValidationRule
in WithValueProvider
(594e043)
Deprecations 💀
LastDragon_ru\LaraASP\Spa\Http\Request
(use custom class and WithValueProvider
trait instead) (db17969)
- Validation rules will not implement deprecated
Illuminate\Contracts\Validation\Rule
in the next major version (4c05b89)
Package testing
Deprecations 💀
LastDragon_ru\LaraASP\Testing\Database\RefreshDatabaseIfEmpty
(use own trait instead) (dd6a34e)
LastDragon_ru\LaraASP\Testing\TestCase
(69a1227)
More assertions 🥩
Mark |
Type |
Count |
Packages |
|
Features |
7 |
documentator , graphql , graphql-printer , testing |
|
Bug Fixes |
5 |
documentator , graphql , graphql-printer , testing |
💀 |
Deprecations |
2 |
graphql , testing |
The release introduces more testing assertions and much better docs for them.
Package documentator
Features
IncludeDocBlock
(include:docblock
) will replace inline @see
/@link
to FQCN if possible (71aa7b6)
Bug Fixes
IncludeDocBlock
(include:docblock
) will include whole docblock by default (00ace46)
Preprocessor
regexp mode (added u
flag) (ea497bb)
Package graphql
Features
- Added
assertGraphQLIntrospectionEquals()
assertion (539ba11)
- Added
assertGraphQLSchemaNoBreakingChanges()
assertion (ed9bfc1)
- Added
assertGraphQLSchemaNoDangerousChanges()
assertion (ee41b8c)
- Added
assertGraphQLSchemaValid()
assertion (49941c5)
Bug Fixes
- The current schema will be pass to
assertGraphQLPrintableEquals()
/assertGraphQLExportableEquals()
when not specified (9c930b2)
Deprecations 💀
*:getDirectiveLocations()
/*:getLocations()
, please use *::locations()
instead (224a69a)
Package graphql-printer
Features
GraphQLExpected
can hold the Schema
(that required for export) (a6a316e)
Bug Fixes
Printer::process()
will not throw DirectiveDefinitionNotFound
(same as for a type) (3246647)
Package testing
Features
- Added
ResponseAssertions::assertPsrResponse()
assertion (6d42dda)
Bug Fixes
ScheduleAssertions::assertScheduled()
command class detection (018d177)
Deprecations 💀
ResponseAssertions::assertThatResponse()
, please use ResponseAssertions::assertPsrResponse()
instead (81125e9)
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
into vendor-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 to UPGRADE.md
(should be in the same directory where README) (2f2adeb)
template
parameter support for IncludeDocumentList
(include:document-list
) (af8f2e4)
template
parameter support for IncludePackageList
(include:include:package-list
) (d2dbf7f) ☣
Bug Fixes
- Added missed
nikic/php-parser
requirement + compatibility with v5 (abcae15)
requirements
command will use local composer.json
for HEAD
(80486bd)
Miscellaneous
- Removed
phpdocumentor/reflection-docblock
, the phpstan/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 only string
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 operators nullsFirst
/nullsLast
(#119, e260593)
@sortBy
: Support of Operators::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
- Bindings registration (
bindIf()
=> scopedIf()
) (41387ae)
- Per type
Operators
cache (8fda774)
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 to Str::studly()
as it should be (dc5b70f)
Deprecations 💀
LastDragon_ru\LaraASP\GraphQL\Builder\Contracts\Scout\FieldResolver
, use LastDragon_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 use enum SearchByTypeFlag { Yes }
/enum SortByTypeFlag { Yes }
instead (75639af)
@sortBy
: enum SortByTypeDirection { asc, desc }
, please use enum 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 to OperatorDirective::getLocations()
(2bfe45c) ☣
- Operators (#133, 4e91f28) ☣
Property
not Stringable
anymore (fd5d8ef) ☣
- Removed deprecated
ClientException::getCategory()
(24cb66f) ☣
@searchBy
: @searchByOperatorRelation
renamed to `@searchByOperatorRelat...
Read more
GraphQL improvements 🐝
Mark |
Type |
Count |
Packages |
|
Features |
2 |
graphql |
|
Bug Fixes |
1 |
testing |
Package graphql
Features
- New setting
builder.allowed_directives
to control which directives should be copied from the original field into generated (#132, c38d337)
- Support of
extend scalar/etc X
to add operators (c7bd1c4)
Package testing
Bug Fixes
ScalarStrictComparator
will respect $ignoreCase
(b7919c9)