5
Tôi muốn bắt đầu tập lệnh phar dưới dạng tệp thực thi, trực tiếp bằng cách thực hiện foo.phar <params>
thay vì php foo.phar <params>
.Làm thế nào để tạo một phar thực thi?
Tôi muốn bắt đầu tập lệnh phar dưới dạng tệp thực thi, trực tiếp bằng cách thực hiện foo.phar <params>
thay vì php foo.phar <params>
.Làm thế nào để tạo một phar thực thi?
Thật dễ dàng bằng cách sửa đổi cuống mặc định (thêm số shebang tương ứng với 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();
Vì tệp thi hành PHP không có trong '/ usr/bin/php' trên tất cả các hệ thống, nên sử dụng' #!/Usr/bin/env php' thay thế. Xem http://tech.vg.no/2012/02/21/dont-hardcode-php-executable-path-in-shebang/ – chiborg
Vì một số lý do nó không hoạt động trên máy chủ Ubuntu của tôi 10.04LTS ... – magnetik
Phương pháp này có hoạt động trên Windows không? – weynhamz