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
The goal is to address open issues as well as to improve the maintainability of this library.
Background
Currently this component uses array's for configuration throughout the entire library which makes typesafety and static analysis harder to maintain. Also it still has code necessary for PHP 7 which is EOL for quite a while now.
Considerations
All features should ideally be introduced into the current stable version 3.x in a backwards compatible way.
This will provide users a clear transition path that can already be done when running version 3.x.
Proposal(s)
Old functionality and future breaking points must be marked accordingly:
Deprecations with @deprecated
Portected methods and properties that should become private with @private or @internal
Classes that will become final with @final
All annotated changes in 3.x will then be applied in 4.0.0
Doc-type type hints will be replaced or extended with native type hints. No method or property should be untyped (mixed will be used when necessary to explicitly state the intent of any type or psalm templates).
Array-Configuration will only be used as input. Within the library all Configuration should be kept in strongly typed and well defined Value-Objects.
The AoT Compiler should be moved from this code base into a separate package/repository to allow adding it as a dev-dependency, since it is not required for runtime purposes.
Version 4.0.0 should drop support for all PHP versions prior 8.2 (not 8.3 as previously suggested)
Appendix
As for the process I'd start PRs against the 3.x branch (3.15.x at the time of writing this). When the current 3.x reached a state for the transition, I'd create a 4.0.x branch, a 4.0.0 milestone and start pull requests for the Deprecation removals, type changes and php version bumps.
The text was updated successfully, but these errors were encountered:
We discussed this at the TSC meet on 2nd December. The only point raised was dropping support for 8.2 in v4 without any clear argument as to why.
General consensus is we support all currently maintained versions of PHP unless there's a compelling reason to drop a version that is still receiving security patches which is Dec 2026 for 8.2. Totally behind dropping support for 8.1 for readonly props.
No hard reason, just for embracing new PHP features such as #[\Override]. But since this is an Attribute it can be used even in lower PHP-Versions. It might be possible to add a shim for these attributes so that they can be used without breaking Reflection-API usage and to satisfy Static-Analysis-Tools.
RFC
Goal
The goal is to address open issues as well as to improve the maintainability of this library.
Background
Currently this component uses array's for configuration throughout the entire library which makes typesafety and static analysis harder to maintain. Also it still has code necessary for PHP 7 which is EOL for quite a while now.
Considerations
All features should ideally be introduced into the current stable version
3.x
in abackwards compatible
way.This will provide users a clear transition path that can already be done when running version
3.x
.Proposal(s)
Old functionality and future breaking points must be marked accordingly:
@deprecated
@private
or@internal
@final
All annotated changes in
3.x
will then be applied in4.0.0
Doc-type type hints will be replaced or extended with native type hints. No method or property should be untyped (
mixed
will be used when necessary to explicitly state the intent of any type or psalm templates).Array-Configuration will only be used as input. Within the library all Configuration should be kept in strongly typed and well defined Value-Objects.
The AoT Compiler should be moved from this code base into a separate package/repository to allow adding it as a dev-dependency, since it is not required for runtime purposes.
Version
4.0.0
should drop support for all PHP versions prior8.2
(not8.3
as previously suggested)Appendix
As for the process I'd start PRs against the
3.x
branch (3.15.x
at the time of writing this). When the current3.x
reached a state for the transition, I'd create a4.0.x
branch, a4.0.0
milestone and start pull requests for the Deprecation removals, type changes and php version bumps.The text was updated successfully, but these errors were encountered: