在我生命中的下一次,我会在函数__halt_compiler之后看到一些字节码.在这种情况下,它是symfony安装程序.怎么做 ?如何生成在__halt_compiler之后可执行的代码?
我想你的意思是https://symfony.com/installer,这是一个像这样开始的PHAR档案:
#!/usr/bin/env php
<?php
/**
* Generated by Box.
*
* @link https://github.com/herrera-io/php-box/
*/
if (class_exists('Phar')) {
Phar::mapPhar('default.phar');
require 'phar://' . __FILE__ . '/symfony';
}
__HALT_COMPILER(); ?>
Run Code Online (Sandbox Code Playgroud)
从概念上讲,PHAR档案与自解压ZIP文件没有太大区别(实际上ZIP是支持的内部格式之一).档案包含:
一个存根,这是短期的PHP脚本就可以看到.
带有存档争用描述的清单
包含内容本身的存档
可选的签名
顶部的存根是一个常规的PHP脚本,因此PHAR存档可以使用常规的PHP解释器运行,而不需要专用的可执行文件:
php foo.phar
Run Code Online (Sandbox Code Playgroud)
此脚本块以__HALT_COMPILER()结尾; 至::
防止文件的其余部分被解析并可能作为PHP代码执行(主脚本执行初始阶段所需的所有操作).
填充__COMPILER_HALT_OFFSET__常量,以便PHAR库可以轻松检测归档数据的开始位置.
这个脚本做了三件事:
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |