PHP从 5.3开始支持phar,简单点说就是把一些文件打包起来, 也可以理解成是山寨jar。
使用 phar 就是把一堆文件打包成一个文件,
目的是为了 方便分发,部署,管理 ,但个人感觉用处不大,只做学习使用
示例:
首先立了一个foo目录,目录里面有Foo.class.php和index.php两个文件:
< ?php
// Foo.class.php
class Foo
{
public function __construct()
{
echo 'A Foo is created'
echo 'and the current dir is ', __DIR__;
}
}
?>
< ?php
// index.php
require __DIR__.'/Foo.class.php';
$foo = new Foo();
function test()
{
return 'from test';
}
?>
然后再写一个打包脚本来生成foo.phar文件:
< ?php
// archive.php
// 打包前 需要设置php.ini中 phar.readonly = off ,默认是on
$phar = new Phar('foo.phar', 0, 'foo.phar');
$phar->buildFromDirectory(__DIR__.'/foo');
?>
打包之前要确保 php.ini 中的 phar.readonly=0,即允许对 phar 作修改操作。
上面代码会将foo目录下的所有文件 打包成一个文件。
使用 phar 包:
< ?php // 引入文件 require 'foo.phar'; // 调用一个方法 echo test(); ?>
将打包好的 random.phar 当作普通文件引入即可,使用和正常脚本没什么不同。
如果只需要引入某一个文件可以这样:
< ?php require 'phar://foo.phar/Foo.class.php'; ?>

