Fix line numbers in phars
parent
e50fbf378b
commit
32adc8908d
|
@ -102,12 +102,11 @@ class Compiler
|
||||||
{
|
{
|
||||||
$path = str_replace(dirname(dirname(__DIR__)).DIRECTORY_SEPARATOR, '', $file->getRealPath());
|
$path = str_replace(dirname(dirname(__DIR__)).DIRECTORY_SEPARATOR, '', $file->getRealPath());
|
||||||
|
|
||||||
if ($strip) {
|
|
||||||
$content = php_strip_whitespace($file);
|
|
||||||
} elseif ('LICENSE' === basename($file)) {
|
|
||||||
$content = "\n".file_get_contents($file)."\n";
|
|
||||||
} else {
|
|
||||||
$content = file_get_contents($file);
|
$content = file_get_contents($file);
|
||||||
|
if ($strip) {
|
||||||
|
$content = $this->stripComments($content);
|
||||||
|
} elseif ('LICENSE' === basename($file)) {
|
||||||
|
$content = "\n".$content."\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
$content = str_replace('@package_version@', $this->version, $content);
|
$content = str_replace('@package_version@', $this->version, $content);
|
||||||
|
@ -122,6 +121,32 @@ class Compiler
|
||||||
$phar->addFromString('bin/composer', $content);
|
$phar->addFromString('bin/composer', $content);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes comments from a PHP source string.
|
||||||
|
*
|
||||||
|
* @param string $source A PHP string
|
||||||
|
* @return string The PHP string with the comments removed
|
||||||
|
*/
|
||||||
|
private function stripComments($source)
|
||||||
|
{
|
||||||
|
if (!function_exists('token_get_all')) {
|
||||||
|
return $source;
|
||||||
|
}
|
||||||
|
|
||||||
|
$output = '';
|
||||||
|
foreach (token_get_all($source) as $token) {
|
||||||
|
if (is_string($token)) {
|
||||||
|
$output .= $token;
|
||||||
|
} elseif (in_array($token[0], array(T_COMMENT, T_DOC_COMMENT))) {
|
||||||
|
$output .= str_repeat("\n", substr_count($token[1], "\n"));
|
||||||
|
} else {
|
||||||
|
$output .= $token[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
private function getStub()
|
private function getStub()
|
||||||
{
|
{
|
||||||
return <<<'EOF'
|
return <<<'EOF'
|
||||||
|
|
Loading…
Reference in New Issue