如何制作可执行的 phar


How to make an executable phar?

我想直接通过执行foo.phar <params>而不是php foo.phar <params>来启动 phar 脚本作为可执行文件。

通过修改默认存根(添加与 php 对应的 shebang)很容易。

// start buffering. Mandatory to modify stub.
$phar->startBuffering();
// Get the default stub. You can create your own if you have specific needs
$defaultStub = $phar->createDefaultStub('index.php');
// Adding files
$phar->buildFromDirectory(__DIR__, '/'.php$/');
// Create a custom stub to add the shebang
$stub = "#!/usr/bin/php 'n".$defaultStub;
// Add the stub
$phar->setStub($stub);
$phar->stopBuffering();