Phar
来源:互联网 发布:快手外星人知乎 编辑:程序博客网 时间:2024/05/17 18:44
简单来说,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"
;
private
$email
=
"anonymous@nonexists.com"
;
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
->set_email(
"laomeng@163.com"
);
$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文件:
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->set_email(
"mengguang@gmail.com"
);
$u->introduce();
require_once
"phar://user.phar/user.func.php"
;
$u=make_user(
"xiaomeng"
,
"xiaomeng@163.com"
);
dump_user($u);
参考资料:
https://php.net/manual/en/book.phar.php
0 0
- Phar
- Phar文件
- make: *** [ext/phar/phar.php] Error 127
- Phar:PHP文件归档
- 关于php的phar
- laravel linux composer.phar
- PHP代码打包---phar
- phar是啥?
- 生成composer.phar文件
- pear phar pecl区别
- php的phar归档
- php Phar 打包
- phar文件解压还原
- phar包的使用
- 安装composer.phar
- 使用Phar来打包发布PHP程序(什么是phar包)
- PHP归档phar性能测试
- 使用phar包配置phpuint
- 机器学习之 weka学习(四)
- AFNetworking 3.0 版本使用
- Yii的类自动加载机制
- Hibernate 中一对多的 注解 问题
- MYsql 常用命令
- Phar
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
- Codeforces Round #354 (Div. 2)B.Pyramid of Glasses(思维题)
- Andorid 对非泛型接口扩展支持泛型
- The constructor BASE64Encoder() is not accessible due to restriction on required
- map::operator[]
- RESTful API
- eclipse 快捷键大全,eclipse查找类,文件,添加注释
- swift下给控件添加点击事件(双击、捏、旋转、拖动、划动、长按)