2016-02-11 4 views
5

У меня есть приложение PHP в исполняемый архив Phar и есть внутри одного класса с методом, который должен получить доступ к выполненным Phar archive метаданным.Как получить метаданные архива phar внутри исполняемого phar?

Я мог бы получить метаданные, как показано ниже, однако кажется странным, что я загружаю то же самое Phar внутри Phar archive, выполненное для того, чтобы получить его метаданные.

Так есть Право Способ получения выполненных метаданных Phar's? Возможно, прочитайте его и определите, что внутри 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(); 
    } 
} 

ответ

1

PHP хранит кэш уже загруженных файлов ФАР см http://git.php.net/?p=php-src.git;a=blob;f=ext/phar/phar.c;h=65ebce0f0856fc5a90a62d32dd0bb5c00627706f;hb=HEAD#l96

Кэш используется при открытии файлов ФАР, так что это не так дорого, как открытие совершенно другой файл ФАР.


И нет, так как в PHP 7.2, нет лучшего способа, чтобы получить мета-данные текущего «работает» файл ФАР.

+0

спасибо за указание на источник как время публикации Я не смог его найти –

 Смежные вопросы

  • Нет связанных вопросов^_^