PHP phar://
简介
phar:// 流包装器在 5.3.0 之后的 PHP 版本中均可用。Phar 的意思是 PHP 归档。它用于分发 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 // The php.ini setting phar.readonly must be set to 0 $pharFile = 'app.phar'; // clean up if (file_exists($pharFile)) { unlink($pharFile); } if (file_exists($pharFile . '.gz')) { unlink($pharFile . '.gz'); } // create phar $p = new Phar($pharFile); // creating our library using whole directory $p->buildFromDirectory('src/'); // pointing main file which requires all classes $p->setDefaultStub('index.php', '/index.php'); // plus - compressing it into gzip $p->compress(Phar::GZ); echo "$pharFile successfully created"; ?>
从命令行运行上面的脚本
php create-phar.php
这会在工作目录中创建一个 app.phar。要运行 phar 归档,使用以下命令
php app.phar
使用 phar:// 包装器
<?php echo file_get_contents('phar://app.phar/index.php'); ?>
这将显示 index.php 文件的内容
广告