Как получить метаданные архива фара внутри выполненного фара?
Я упаковал PHP-приложение в исполняемый архив Phar и поместил его в один класс с методом, который должен обращаться к исполняемому файлу. Phar archive
мета-данные.
Я мог бы получить метаданные, как показано ниже, однако это кажется странным, что я загружаю то же самое Phar
внутри Phar archive
выполняется для того, чтобы получить его метаданные.
Так есть ли правильный способ, как получить исполняемые метаданные Фар? Возможно прочитайте это и определили это в окурке Фара или кое-что.
<?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();
}
}
1 ответ
PHP хранит кэш уже загруженных файлов phar, см. http://git.php.net/?p=php-src.git;a=blob;f=ext/phar/phar.c;h=65ebce0f0856fc5a90a62d32dd0bb5c00627706f;hb=HEAD
Кеш используется при открытии phar-файлов, поэтому он не такой дорогой, как открытие совершенно другого phar-файла.
И нет, начиная с PHP 7.2, нет лучшего способа получить метаданные текущего "запущенного" phar-файла.