Phar,是一种将PHP程序打包的工具,至PHP5.3以来开始支持,这个就类似于Java中的jar包,使用的时候也十分简便,只要include或者require即可,网上的许多PHP的SDK也支持这种打包方式。下面就简单说下怎么使用phar打包以及引入phar包。
实验环境
打包PHP程序
修改PHP配置
要想利用Phar将PHP应用程序打包,先修改php.ini的相关配置
打开php.ini,找到phar.readonly
1
| phar.readonly = Off # 去掉;的注释,并且将On改为Off
|
此时就可以愉快的使用phar打包
开始打包
假定项目的目录结构如下图:
Demo的github地址
build.php 为我们的打包程序. 内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?php $phar = new Phar('example.phar'); $phar->startBuffering(); $phar->buildFromDirectory(__DIR__); $phar->compressFiles(Phar::GZ); $phar->setStub($phar->createDefaultStub('index.php')); $phar->stopBuffering();
|
其中buildFromDirectory方法还接收第二个参数可以用正则表达式来筛选不需打包的文件
1 2 3
| <?php $phar->buildFromDirectory(__DIR__,'/\.php$/');
|
使用phar打包程序
- 如果是直接使用整个项目的话可以直接,用include 或者 require
1 2 3
| <?php require_once __DIR__.'/example.phar';
|
1 2 3
| <?php include 'phar://example.phar/your_project_path/your_script.php';
|
注意事(坑)项(点)
假如你打包的项目中,入口文件index.php 要引入(include or require)项目中的其他脚本,务必使用绝对路径,否则你打包成phar包之后,其他项目要引入这个phar就会路径出错!!,即如下:
1 2 3
| <?php require __DIR__."/src/controller.php"; require "./lib/tools.php";
|
感谢 & 参考资料
韩天峰大大的博客
官方文档
最后更新时间:
对本文内容有任何意见,建议,疑问etc,均可通过邮箱联系我,逗比博主尽最大努力回复O(∩_∩)O,如需转载(tan90°,不存在的(°Д°)),注明出处即可!