@@ -10,6 +10,68 @@ The format is based on [Keep a Changelog][], and this project adheres to [Semant
1010[ Keep a Changelog ] : https://keepachangelog.com/en/1.1.0/
1111[ Semantic Versioning ] : https://semver.org/spec/v2.0.0.html
1212
13+ ## [ v0.99.64] - 2024-11-29
14+
15+ ### Changed
16+
17+ #### ` Collection `
18+
19+ - Move ` ListInterface ` methods to ` CollectionInterface `
20+ - Use PHPStan conditional parameter types to vary ` forEach() ` , ` map() ` , ` filter() ` and ` find() ` callback signatures by ` $mode `
21+ - Return a modified instance from collection methods that previously operated on a single instance:
22+ - ` set() `
23+ - ` unset() `
24+ - ` add() `
25+ - ` merge() `
26+ - ` pop() `
27+ - ` shift() `
28+ - Adopt ` iterable ` as return type for protected ` getItems() ` and ` filterItems() ` methods
29+ - In list collections, silently replace invalid keys instead of throwing an exception
30+ - Replace ` AbstractTypedCollection ` and ` Collection ` with non-final ` Collection `
31+ - Replace ` AbstractTypedList ` and ` ListCollection ` with non-final ` ListCollection `
32+ - Rename:
33+ - ` ListTrait ` -> ` ListCollectionTrait `
34+ - ` ReadableCollectionTrait ` -> ` ReadOnlyCollectionTrait `
35+ - Rename ` ImmutableArrayAccessTrait ` to ` ReadOnlyArrayAccessTrait ` and move it back to the ` Collection ` namespace
36+
37+ #### ` Http `
38+
39+ - Rename ` HttpHeadersInterface::add() ` to ` append() ` to resolve conflict with ` CollectionInterface::add() `
40+ - In ` HttpHeaders ` :
41+ - Implement methods added to ` CollectionInterface `
42+ - Replace ` generateItems() ` with ` getItems() ` now that the ` ReadOnlyCollectionTrait ` method can return ` iterable `
43+ - Implement ` CollectionInterface::map() `
44+
45+ #### ` Utility `
46+
47+ - Update ` Debug::getCaller() ` to work with PHP 8.4's backtrace changes
48+
49+ ### Removed
50+
51+ #### ` Collection `
52+
53+ - Remove ` ListInterface `
54+ - Remove "immutable" collections and traits:
55+ - ` ImmutableCollection `
56+ - ` ImmutableCollectionTrait `
57+ - ` ImmutableListCollection `
58+ - ` ImmutableListTrait `
59+ - Remove redundant collection methods ` empty() ` and ` copy() `
60+
61+ #### ` Core `
62+
63+ - Remove ` ImmutableArrayAccessTrait ` (moved to ` Collection ` component as ` ReadOnlyArrayAccessTrait ` )
64+
65+ ### Fixed
66+
67+ #### ` Collection `
68+
69+ - Fix issue where numeric keys are reindexed when ` shift() ` is called on a collection
70+
71+ #### ` Core `
72+
73+ - Remove references to ` E_STRICT ` constant (deprecated in PHP 8.4)
74+
1375## [ v0.99.63] - 2024-11-16
1476
1577### Changed
@@ -4162,6 +4224,7 @@ This is the final release of `lkrms/util`. It is moving to [Salient](https://git
41624224
41634225- Allow `CliOption` value names to contain arbitrary characters
41644226
4227+ [v0.99.64]: https://github.com/salient-labs/toolkit/compare/v0.99.63...v0.99.64
41654228[v0.99.63]: https://github.com/salient-labs/toolkit/compare/v0.99.62...v0.99.63
41664229[v0.99.62]: https://github.com/salient-labs/toolkit/compare/v0.99.61...v0.99.62
41674230[v0.99.61]: https://github.com/salient-labs/toolkit/compare/v0.99.60...v0.99.61
0 commit comments