Added support for phar metadata

This commit is contained in:
2017-02-12 02:32:17 +01:00
parent 7ccdb99836
commit 4873ffdf02
9 changed files with 125 additions and 18 deletions

View File

@ -59,7 +59,7 @@ class PharBuilder
}
$size_tot += filesize($file->src);
if (fnmatch("*.php",$file->src) && (!$verbatim)) {
if (fnmatch("*.php",$file->src) && (!$file->verbatim)) {
$min = php_strip_whitespace($file->src);
$size_min += strlen($min);
$phar->addFromString($file->dest?:$file->src, $min);
@ -92,7 +92,7 @@ class PharBuilder
log_debug("Creating library stub...");
// Create library stub
$stub = '<?php ';
$stub.= 'require_once __DIR__."/vendor/autoload.php";';
$stub.= 'file_exists(__DIR__."/vendor/autoload.php") && require_once __DIR__."/vendor/autoload.php";';
foreach ($this->manifest->getProps() as $k=>$v) {
$stub.= sprintf('define(%s,%s);', var_export($k,true), var_export($v,true));
}
@ -119,6 +119,13 @@ class PharBuilder
$phar->setStub($mainstub);
}
// Write metadata
log_debug("Writing metadata...");
$md = $this->manifest->getMetadata();
foreach ($md as $key=>$value)
log_debug(" meta[{$key}] = {$value}");
$phar->setMetadata($md);
// Close the phar
$phar = null;
}