rfc:direct-execution-opcode

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
rfc:direct-execution-opcode [2020/12/10 14:30] – add scenarios chopinsrfc:direct-execution-opcode [2020/12/18 14:25] chopins
Line 3: Line 3:
   * Date: 2020-11-13   * Date: 2020-11-13
   * Author: chopins xiao(chopins.xiao@gmail.com)   * Author: chopins xiao(chopins.xiao@gmail.com)
-  * Status: Draft+  * Status: Under Discussion
   * First Published at: http://wiki.php.net/rfc/direct-execution-opcode   * First Published at: http://wiki.php.net/rfc/direct-execution-opcode
  
Line 64: Line 64:
 </PHP> </PHP>
 ===== Backward Incompatible Changes ===== ===== Backward Incompatible Changes =====
-Magic constant **%%__FILE__%%** is the absolute path to the compiled source file, not the path to the opcode file that is currently executing. **%%__DIR__%%** and **%%__LINE__%%** also have this problem. Therefore, applications that rely on these constants are affected.+PHP's constant is similar to a C macro,their values are determined when compiled into opcode. Therefore, the value of the system-related constant depends on the compiler's system environment. 
 +So magic constant **%%__FILE__%%** is set to the absolute path of the compiler's php source file, instead of the path when the opcode file is executed. **%%__DIR__%%** and **%%__LINE__%%** also have this problem. Therefore, applications that rely on these constants are affected.
  
 The file path obtained by **error reporting**, **exceptions**, **reflections**, will also be the path to the compiled file, not the current opcode file path. The file path obtained by **error reporting**, **exceptions**, **reflections**, will also be the path to the compiled file, not the current opcode file path.
rfc/direct-execution-opcode.txt · Last modified: 2021/04/23 18:07 by imsop