rfc:platform_requirement_declares
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
rfc:platform_requirement_declares [2020/02/16 13:19] – marandall | rfc:platform_requirement_declares [2020/02/16 15:23] (current) – marandall | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== PHP RFC: Platform Requirement Declares ====== | ====== PHP RFC: Platform Requirement Declares ====== | ||
* Version: 0.1 | * Version: 0.1 | ||
- | * Date: 2013-02-24 (use today' | + | * Date: 2020-02-16 |
* Target: PHP 8.0 | * Target: PHP 8.0 | ||
* Author: Mark Randall, marandall@php.net | * Author: Mark Randall, marandall@php.net | ||
Line 26: | Line 26: | ||
===== Why not composer? ===== | ===== Why not composer? ===== | ||
- | Composer repositories have the ability to check packages against certain requirements, | + | Composer |
Crucially, if Composer handles this of its own accord, that information is not exposed to PHP, and therefore the engine will be unable to make decisions based upon it (see future scope). | Crucially, if Composer handles this of its own accord, that information is not exposed to PHP, and therefore the engine will be unable to make decisions based upon it (see future scope). | ||
+ | |||
===== Backward Incompatible Changes ===== | ===== Backward Incompatible Changes ===== | ||
Line 36: | Line 36: | ||
===== Proposed PHP Version(s) ===== | ===== Proposed PHP Version(s) ===== | ||
- | This would target PHP 8.0, although as a small preemptive change, discussions could be had about backporting | + | This would target PHP 8.0, although as a small preemptive change, discussions could be had about back-porting |
Line 42: | Line 42: | ||
This RFC is laying the groundwork for the language to take decisions based on the file authors stated version. To that end it may be beneficial to expose the platform_target to the execution context by storing it against functions / opcodes so it can be read as part of the execute data. | This RFC is laying the groundwork for the language to take decisions based on the file authors stated version. To that end it may be beneficial to expose the platform_target to the execution context by storing it against functions / opcodes so it can be read as part of the execute data. | ||
- | This opens the door for limiting backwards compatibility issues by only making certain changes when targetting | + | This opens the door for limiting backwards compatibility issues by only making certain changes when targeting |
+ | |||
+ | This would mean that new breaking changes could be made by allowing programmers to opt-in, meanwhile those without platform targets, or those with a platform target less than the version the breaking change was introduced, could continue to receive historic behaviour, with a deprecation notice giving an approximate date at which point the new behaviour will be considered default. | ||
rfc/platform_requirement_declares.1581859153.txt.gz · Last modified: 2020/02/16 13:19 by marandall