You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Don't accept a container when creating a builder (builders are tightly coupled with constructors, so no container is needed)
112
+
- In `Facade`, only use `Container` if it is defined
113
+
- Detect date properties and parameters via native type hints even if `Temporal` is not implemented
114
+
- Refactor `Facade::getService()` for simplicity
115
+
- Narrow `Hierarchical` return types to `$this` as needed
116
+
- Refactor `Normalisable::normaliseProperty()` for clarity
117
+
- Make `$context` a required parameter of `Providable` methods `provide()` and `provideMultiple()` and remove `$provider` accordingly
118
+
- Refactor `Providable::provideMultiple()` for consistency with `Constructible`
119
+
- Improve uninitialised property handling in `TreeableTrait`
120
+
- Replace `ConfigurationManager::getMany()` with `getMultiple()`
121
+
- Extend `DateParserInterface` from `DateFormatterInterface`
122
+
- In `DateParserInterface::parse()`, specify that `$timezone` is ignored if `$value` has a timezone and update implementations accordingly
123
+
- Deregister `ErrorHandler` when the facade it's running behind is unloaded
124
+
- In `MultipleErrorException`:
125
+
- Rename `getMessageWithoutErrors()` to `getMessageOnly()`
126
+
- Add `$console` parameter to `reportErrors()`
127
+
- In `Process`:
128
+
- Improve robustness of stream handling
129
+
- Always throw `ProcessTerminatedBySignalException` when a process is killed, not just when `wait()` is called
130
+
- Add and throw `ProcessDidNotTerminateException`
131
+
- Do not throw `ProcessException` for stream-related errors
132
+
- Add `ClassReflection` and adopt instead of `Introspector` and `IntrospectionClass` where possible
133
+
- Fix issue where reserved properties are ignored when getting "magic" properties
134
+
- Fix issue where properties with asymmetric handling are not serialized, e.g. when a protected property is read via `__get()` and written via `_setMyProperty()`
135
+
- Do not allow multiple properties or "magic" property methods to resolve to the same name after normalisation
136
+
- Do not allow dynamic property properties to be serviced by "magic" property methods
137
+
- Do not allow `Treeable` classes to return invalid parent/children properties
138
+
139
+
#### `PHPDoc`
140
+
141
+
- Collect and propagate context data to allow expansion of relative class types like `static`, `$this` and `self`
142
+
143
+
#### `PHPStan`
144
+
145
+
- Preserve key types when `$preserveKeys = true` is passed to `Arr::flatten()`
146
+
- Handle optional keys in arrays passed to `Arr::flatten()`
147
+
148
+
#### `Sli`
149
+
150
+
- Refactor "generate facade" command
151
+
- Add new options:
152
+
-`--implement <interface>`
153
+
-`--skip-deprecated` (previous behaviour was to skip deprecated methods unconditionally)
154
+
- Exclude `@internal` methods from facades
155
+
- Build out PHPDoc tag handling and other abstractions in `AbstractGenerateCommand`
156
+
157
+
#### `Sync`
158
+
159
+
- Extend `ClassReflection` from `Reflection` classes
160
+
- Rename `Reflection` classes for consistency
161
+
- Refactor `SyncSerializeRulesInterface` for consistency with `SerializeRulesInterface`
- Do not extend `AbstractEntity` from `AbstractSyncEntity`
169
+
- Remove `Temporal` from `SyncEntityInterface` and implement it in `AbstractSyncEntity`
170
+
- Refactor `SyncEntityProviderInterface::getResolver()` and downstream implementations
171
+
- Accept closures for `$nameProperty` and `$weightProperty`
172
+
- Require `$nameProperty` closures to return `string`
173
+
- Handle uninitialised properties and invalid values gracefully
174
+
175
+
#### `Utility`
176
+
177
+
- Optionally preserve keys in `Arr::pluck()`, `Arr::flatten()` and `Reflect::getNames()`
178
+
- In `Test::isBuiltinType()`, optionally exclude relative class types and/or the `resource` type, and remove soft-reserved types `enum` and `numeric` entirely
179
+
180
+
### Removed
181
+
182
+
#### `Core`
183
+
184
+
- Remove `getB()`, `issetB()`, `unsetB()` from `BuilderInterface` (implementation details are not needed in the contract)
0 commit comments