I want to start a phar script as an executable, directly by doing foo.phar <params>
instead of php foo.phar <params>
.
It's easy by modifying the default stub (adding the shebang corresponding to php).
// 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();
来源:https://stackoverflow.com/questions/11082337/how-to-make-an-executable-phar