我已经将PHP应用程序打包到可执行的Phar存档中,并且在一个类中包含了一个方法,该方法应该访问已执行的Phar archive元数据。
我可以获得如下所示的元数据,但是,为了获得元数据,在执行的Phar中加载相同的Phar archive似乎很奇怪。
那么,如何执行Phar的元数据有正确的方法吗?也许读过它,并定义了在Phar's Stub或什么的内部。
<?php
namespace MyPhar;
use \Phar;
class InsideThePhar {
public function getPharMetaData() {
$phar_self = new Phar(Phar::running(false));
$metadata = $phar_self->getMetadata();
var_dump($metadata);
exit();
}
}发布于 2017-06-27 08:20:30
PHP保存已加载phar文件的缓存,请参阅http://git.php.net/?p=php-src.git;a=blob;f=ext/phar/phar.c;h=65ebce0f0856fc5a90a62d32dd0bb5c00627706f;hb=HEAD#l96。
缓存是在打开phar文件时使用的,因此它不像打开一个完全不同的phar文件那么昂贵。
没有,在PHP7.2中,没有更好的方法来获取当前“运行”的phar文件的元数据。
https://stackoverflow.com/questions/35344338
复制相似问题