PHPPHP的就学–使用phar打包

前段时间写了几个PHP的本子,可是因为脚本的品类是基于composer安装的,给别人使用的时候不太有利,就指望可以打包成1个能一贯动用的公文。

搜寻了一晃,发现能够应用phar打包。

就算我们有如下三个项目

PHP 1

输入文件是index.php,打包前的指令如下:

php php index.php

再添加打包脚本在此以前,须求先修改一下PHP的安排,将phar.readonly改为Off,私下认可为On,表示只读,在php.ini文件中:

[Phar]
; http://php.net/phar.readonly
phar.readonly = Off

编纂创设phar包的本子,命名为build.php

<?php
$exts = ['php'];            // 需要打包的文件后缀
$dir = __DIR__;             // 需要打包的目录
$file = 'test.phar';       // 包的名称, 注意它不仅仅是一个文件名, 在stub中也会作为入口前缀
$phar = new Phar(__DIR__ . '/' . $file, FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_FILENAME, $file);
// 开始打包
$phar->startBuffering();
// 将后缀名相关的文件打包
foreach ($exts as $ext) {
    $phar->buildFromDirectory($dir, '/\.' . $ext . '$/');
}
// 把build.php本身摘除
$phar->delete('build.php');
// 设置入口
$phar->setStub($phar->createDefaultStub('index.php'));
$phar->stopBuffering();
// 打包完成
echo "Finished {$file}\n";

执行php build.php就能够看来变化的test.phar包了。

执行php test.phar就跟以前实施php index.php的功用一样了。

参考摘录:

PHP中phar包的行使
使用phar上线你的代码包

相关文章