使用Phar类。例如,将以下内容放入compress.php
文件中:
$phar = new Phar('index.phar');
$phar->addFile('index.php');
$phar->buildFromDirectory('lib');
$phar->buildFromDirectory('database');
在命令行中运行php compress.php
,你就拥有了一个Phar。
<?php
$phar = new \Phar(__DIR__ . '/index.phar');
$phar->startBuffering(); // For performance reasons. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes.
$phar->addFile('index.php');
$phar->addFile('composer.json');
$phar->addFile('composer.lock');
$phar->buildFromDirectory(__DIR__ . '/vendor');
$phar->stopBuffering();
运行以下命令以运行先前的脚本:
$ php -dphar.readonly=0 index.php
默认情况下,PHP 禁用了创建 phar 存档文件的功能。
php index.phar
命令来运行结果,它正常工作了。如果你将服务器配置为将.phar
文件识别为 PHP,则在 Web 服务器上也应该可以顺利运行。 - icktoofay