This commit is contained in:
2022-01-24 03:22:03 +09:00
parent d75f21035d
commit 290e7ee05e
34 changed files with 1936 additions and 8 deletions
+248
View File
@@ -0,0 +1,248 @@
# Changelog
All notable changes to `data-transfer-object` will be documented in this file
## 3.7.2 - 2021-09-17
- `#[Strict]` is passed down the inheritance chain so children are strict when parent is strict (#239)
## 3.7.1 - 2021-09-09
- Cast properties with self or parent type (#236)
## 3.7.0 - 2021-08-26
- Add `#[MapTo]` support (#233)
## 3.6.2 - 2021-08-25
- Correct behavior of Arr::forget with dot keys (#231)
## 3.6.1 - 2021-08-17
- Fix array assignment bug with strict dto's (#225)
## 3.6.0 - 2021-08-12
- Support mapped properties (#224)
## 3.5.0 - 2021-08-11
- Support union types in casters (#210)
## 3.4.0 - 2021-08-10
- Fix for an empty value being created when casting `ArrayAccess` objects (#216)
- Add logic exception when attempting to cast `ArrayAccess` objects that are not traversable (#216)
- Allow the `ArrayCaster` to retain values that are already instances of the `itemType` (#217)
## 3.3.0 - 2021-06-01
- Expose DTO and validation error array in ValidationException (#213)
## 3.2.0 - 2021-05-31
- Support generic casters (#199)
- Add `ArrayCaster`
- Add casting of objects that implement `ArrayAccess` to the `ArrayCaster` (#206)
- Fix for caster subclass check (#204)
## 3.1.1 - 2021-04-26
- Make `DefaultCast` repeatable (#202)
## 3.1.0 - 2021-04-21
- Add `DataTransferObject::clone(...$args)`
## 3.0.4 - 2021-04-14
- Support union types (#185)
- Resolve default cast from parent classes (#189)
- Support default values (#191)
## 3.0.3 - 2021-04-08
- Fix when nested DTO have casted field (#178)
## 3.0.2 - 2021-04-02
- Allow valid DTOs to be passed to caster (#177)
## 3.0.1 - 2021-04-02
- Fix for null values with casters
## 3.0.0 - 2021-04-02
This package now focuses only on object creation by adding easy-to-use casting and data validation functionality. All runtime type checks are gone in favour of the improved type system in PHP 8.
- Require `php:^8.0`
- Removed all runtime type checking functionality, you should use typed properties and a static analysis tool like Psalm or PhpStan
- Removed `Spatie\DataTransferObject\DataTransferObjectCollection`
- Removed `Spatie\DataTransferObject\FlexibleDataTransferObject`, all DTOs are now considered flexible
- Removed runtime immutable DTOs, you should use static analysis instead
- Added `Spatie\DataTransferObject\Validator`
- Added `Spatie\DataTransferObject\Validation\ValidationResult`
- Added `#[DefaultCast]`
- Added `#[CastWith]`
- Added `Spatie\DataTransferObject\Caster`
- Added `#[Strict]`
## 2.8.3 - 2021-02-12
- Add support for using `collection` internally
## 2.8.2 - 2021-02-11
This might be a breaking change, but it was required for a bugfix
- Prevent DataTransferObjectCollection from iterating over array copy (#166)
## 2.8.1 - 2021-02-10
- Fix for incorrect return type (#164)
## 2.8.0 - 2021-01-27
- Allow the traversal of collections with string keys
## 2.7.0 - 2021-01-21
- Cast nested collections (#117)
## 2.6.0 - 2020-11-26
- Support PHP 8
## 2.5.0 - 2020-08-28
- Group type errors (#130)
## 2.4.0 - 2020-08-28
- Support for `array<int, string>` syntax (#136)
## 2.3.0 - 2020-08-19
- Add PHPStan extension to support `checkUninitializedProperties: true` (#135)
## 2.2.1 - 2020-05-13
- Validator for typed 7.4 properties (#109)
## 2.2.0 - 2020-05-08
- Add support for typed properties to DTO casting in PHP 7.4
## 2.0.0 - 2020-04-28
- Bump minimum required PHP version to 7.4
- Support for nested immutable DTOs (#86)
## 1.13.3 - 2020-01-29
- Ignore static properties when serializing (#88)
## 1.13.2 - 2020-01-08
- DataTransferObjectError::invalidType : get actual type before mutating $value for the error message (#81)
## 1.13.1 - 2020-01-08
- Improve extendability of DTOs (#80)
## 1.13.0 - 2020-01-08
- Ignore static properties (#82)
- Add `DataTransferObject::arrayOf` (#83)
## 1.12.0 - 2019-12-19
- Improved performance by adding a cache (#79)
- Add `FlexibleDataTransferObject` which allows for unknown properties to be ignored
## 1.11.0 - 2019-11-28 (#71)
- Add `iterable` and `iterable<\Type>` support
## 1.10.0 - 2019-10-16
- Allow a DTO to be constructed without an array (#68)
## 1.9.1 - 2019-10-03
- Improve type error message
## 1.9.0 - 2019-08-30
- Add DataTransferObjectCollection::items()
## 1.8.0 - 2019-03-18
- Support immutability
## 1.7.1 - 2019-02-11
- Fixes #47, allowing empty dto's to be cast to using an empty array.
## 1.7.0 - 2019-02-04
- Nested array DTO casting supported.
## 1.6.6 - 2018-12-04
- Properly support `float`.
## 1.6.5 - 2018-11-20
- Fix uninitialised error with default value.
## 1.6.4 - 2018-11-15
- Don't use `allValues` anymore.
## 1.6.3 - 2018-11-14
- Support nested collections in collections
- Cleanup code
## 1.6.2 - 2018-11-14
- Remove too much magic in nested array casting
## 1.6.1 - 2018-11-14
- Support nested `toArray` in collections.
## 1.6.0 - 2018-11-14
- Support nested `toArray`.
## 1.5.1 - 2018-11-07
- Add strict type declarations
## 1.5.0 - 2018-11-07
- Add auto casting of nested DTOs
## 1.4.0 - 2018-11-05
- Rename to data-transfer-object
## 1.2.0 - 2018-10-30
- Add uninitialized errors.
## 1.1.1 - 2018-10-25
- Support instanceof on interfaces when type checking
## 1.1.0 - 2018-10-24
- proper support for collections of value objects
## 1.0.0 - 2018-10-24
- initial release