简单来说,Phar就是把Java界的jar概念移植到了PHP界。
Phar可以将一组PHP文件进行打包,还可以创建默认执行的stub(或者叫做 bootstrap loader),Phar可以选择是否进行压缩,可选gzip和bzip2格式。
下面举例说明如何创建和使用Phar:
假设我们的项目名称是user,包含三个文件:
user/user.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?php
class
user {
private
$name
=
"anonymous"
;
public
function
set_email(
$email
) {
$this
->email=
$email
;
}
public
function
set_name(
$name
) {
$this
->name=
$name
;
}
public
function
introduce() {
echo
"My name is $this->name and my email address is $this->email.\n"
;
}
}
|
user/user.func.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?php
require_once
"user.class.php"
;
function
make_user(
$name
,
$email
) {
$u
=
new
user();
$u
->set_name(
$name
);
$u
->set_email(
$email
);
return
$u
;
}
function
dump_user(
$u
) {
$u
->introduce();
}
|
user/test.php
1
2
3
4
5
6
7
|
<?php
require_once
"user.class.php"
;
$u
=
new
user();
$u
->set_name(
"laomeng"
);
$u
->introduce();
|
然后我们使用如下PHP程序创建Phar文件:
make_phar.php
1
2
3
4
5
|
<?php
$phar
=
new
Phar(
'user.phar'
, 0,
'user.phar'
);
$phar
->buildFromDirectory(dirname(
__FILE__
) .
'/user'
);
$phar
->setStub(
$phar
->createDefaultStub(
'test.php'
,
'test.php'
));
$phar
->compressFiles(Phar::GZ);
|
执行 php make_phar.php后,可以在当前目录发现一个叫做user.phar的文件。
我们可以直接执行user.phar文件:
扫描二维码关注公众号,回复:
532828 查看本文章
![](/qrcode.jpg)
php user.phar,这个相当于执行user/test.php
我们还可以引用此文件:
test_phar.php
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
require_once
"user.phar"
;
require_once
"phar://user.phar/user.class.php"
;
$u=new user();
$u->set_name(
"mengguang"
);
$u->introduce();
require_once
"phar://user.phar/user.func.php"
;
dump_user($u);
|
参考资料: