rfc:aliases_by_reflection
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
rfc:aliases_by_reflection [2014/10/09 20:28] – created milo | rfc:aliases_by_reflection [2017/09/22 13:28] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== PHP RFC: Access to aliases definition by reflection ====== | ====== PHP RFC: Access to aliases definition by reflection ====== | ||
* Version: 0.1 | * Version: 0.1 | ||
- | * Date: 2013-10-09 | + | * Date: 2014-10-09 |
* Author: Miloslav Hůla, < | * Author: Miloslav Hůla, < | ||
- | * Status: | + | * Status: |
* First Published at: http:// | * First Published at: http:// | ||
+ | * Discussion: http:// | ||
+ | * Vote discussion: http:// | ||
Line 71: | Line 73: | ||
===== Backward Incompatible Changes ===== | ===== Backward Incompatible Changes ===== | ||
- | Possible BC break can occur in libraries, which extends | + | Possible BC break can occur in libraries which extend |
Line 79: | Line 81: | ||
===== Impact on performance and memory usage ===== | ===== Impact on performance and memory usage ===== | ||
- | In current PHP version, aliases are parsed and kept only in compile-time. The aliases definition is discarded on the compile-time end. Patch (mentioned below) keeps HashMap with definitions for runtime. | + | In current PHP version, aliases are parsed and kept only in compile-time. The aliases definition is discarded on the compile-time end. Patch (mentioned below) keeps HashMap with definitions for runtime. |
Keeping aliases definition will increase memory consumption. Value depends on many factors: | Keeping aliases definition will increase memory consumption. Value depends on many factors: | ||
Line 111: | Line 113: | ||
Method '' | Method '' | ||
+ | ==== Measurements ==== | ||
Five measurements on real libraries and application follow. | Five measurements on real libraries and application follow. | ||
The first two measurements are done on Nette Framework v2.2.3 and Symfony Framework v2.5.5 (including Doctrine v2.4.6) libraries. The measurements are a little bit synthetic, because every file was loaded (require_once) in a test script. It does not happen in real life application, | The first two measurements are done on Nette Framework v2.2.3 and Symfony Framework v2.5.5 (including Doctrine v2.4.6) libraries. The measurements are a little bit synthetic, because every file was loaded (require_once) in a test script. It does not happen in real life application, | ||
- | The next two measurements are done on clean Wordpress | + | The next two measurements are done on clean WordPress |
The last measurement is done on CLI application ApiGen 4.0.0-RC2. The API documentation is generated for mentioned Nette Framework. | The last measurement is done on CLI application ApiGen 4.0.0-RC2. The API documentation is generated for mentioned Nette Framework. | ||
- | For a time performance measurement, | + | For a time performance measurement, |
| ^ Classes ^ Interfaces ^ Traits ^ Functions ^ All ^ Files ^ Memory PHP7 ^ Memory RFC ^ Diff ^^ Time | | | ^ Classes ^ Interfaces ^ Traits ^ Functions ^ All ^ Files ^ Memory PHP7 ^ Memory RFC ^ Diff ^^ Time | | ||
^ Nette Framework | ^ Nette Framework | ||
^ Symfony Framework | ^ Symfony Framework | ||
- | ^ Wordpress | + | ^ WordPress |
- | ^ Wordpress | + | ^ WordPress |
^ ApiGen | ^ ApiGen | ||
- | PHP7 means [[https:// | + | PHP7 means [[https:// |
Line 135: | Line 138: | ||
Patch does not contain opcache integration. | Patch does not contain opcache integration. | ||
+ | |||
+ | |||
+ | ===== Vote ===== | ||
+ | Should be reflection in PHP 7 extended for a proposed '' | ||
+ | |||
+ | This is not a language change. 50% + 1 votes are needed to get ' | ||
+ | |||
+ | |||
+ | |||
+ | <doodle title=" | ||
+ | * Yes | ||
+ | * No | ||
+ | </ | ||
+ | |||
+ | The vote starts on 11/26/2014 and ends on 12/22/2014. 50% + 1 majority required. | ||
rfc/aliases_by_reflection.1412886535.txt.gz · Last modified: 2017/09/22 13:28 (external edit)