2016-02-11 7 views
5

Ich habe PHP-Anwendung in ausführbare Phar-Archiv verpackt und habe dort in einer Klasse mit Methode, die auf Phar archive Metadaten ausgeführt werden sollte.Wie bekomme ich Phar-Archiv-Metadaten innerhalb von ausgeführten Phar?

Ich könnte Meta-Daten erhalten, wie unten gezeigt, aber das scheint seltsam, dass ich laden Phar innerhalb der Phar archive ausgeführt, um seine Metadaten zu bekommen.

So gibt es richtig Weg, wie Phar's Metadaten ausgeführt werden? Vielleicht lies es und definiere das im Phar's Stub oder so.

<?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(); 
    } 
} 

Antwort

1

PHP hält einen Cache von bereits phar-Dateien geladen, http://git.php.net/?p=php-src.git;a=blob;f=ext/phar/phar.c;h=65ebce0f0856fc5a90a62d32dd0bb5c00627706f;hb=HEAD#l96

Der Cache gebraucht wird, wenn phar Öffnen von Dateien, so dass es eine ganz andere phar als Öffnen der Datei nicht so teuer ist.


Und nein, wie von PHP 7.2 gibt es keine besseren Weg, um die Meta-Daten der aktuell „running“ Phar-Datei zu erhalten.

+0

danke für das Zeigen auf Quelle als Zeitpunkt des Postings Ich konnte es nicht finden –

Verwandte Themen