PHP phar://
phpserver side programmingprogramming更新于 2025/8/19 2:22:17
简介
phar:// 流包装器在 PHP 5.3.0 及之后的所有版本中均可用。Phar 代表 PHP Archive。它用于分发 PHP 应用程序或库,并像普通 PHP 文件一样执行。phar:// 包装器支持使用 fopen() 打开文件进行读写、重命名和目录流操作 opendir() ,以及创建和删除目录。
Phar 类允许将目录中包含的应用程序资源打包到 phar 档案中。要执行读取操作,此存档将放入 phar:// 包装器中
构建 phar 存档
首先,请确保 php.ini 中的 phar.readonly 设置设置为 0。然后,创建一个 src 文件夹,并将应用程序的所有资源放入其中。创建 index.php 文件
<?php echo "phar application started"; ?>
使用 Phar 类对象的 buildFromDirectory() 方法构建包含 src 文件夹中文件的 phar 存档。将 index.php 指定为 setDefaultStub
<?php
// php.ini 文件中的 phar.readonly 必须设置为 0
$pharFile = 'app.phar';
// 清理
if (file_exists($pharFile)) {
unlink($pharFile);
}
if (file_exists($pharFile . '.gz')) {
unlink($pharFile . '.gz');
}
// 创建 phar 文件
$p = new Phar($pharFile);
// 使用整个目录创建我们的库
$p->buildFromDirectory('src/');
// 指向需要所有类的主文件
$p->setDefaultStub('index.php', '/index.php');
// 附加 - 使用 gzip 压缩
$p->compress(Phar::GZ);
echo "$pharFile 已成功创建";
?>
从命令行运行上述脚本
php create-phar.php
这将在工作目录中创建 app.phar。要运行 phar 归档,请使用以下命令
php app.phar
使用 phar:// 包装器
<?php
echo file_get_contents('phar://app.phar/index.php');
?>
这将显示 index.php 文件的内容

