使用Phar来打包发布PHP程序
简单来说,Phar就是把Java界的jar概念移植到了PHP界。
Phar可以将一组PHP文件进行打包,还可以创建默认执行的stub(或者叫做 bootstrap loader),Phar可以选择是否进行压缩,可选gzip和bzip2格式。
下面举例说明如何创建和使用Phar:
假设我们的项目名称是user,包含三个文件:
user/user.class.php
<?phpclass 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
<?phprequire_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
<?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
<?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
<?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
转载于:https://www.cnblogs.com/wangzhaobo/p/8295080.html
使用Phar来打包发布PHP程序相关推荐
- Inno Setup 打包发布exe程序的步骤及注意事项及解决发布后的exe解压后文件都在主目录下导致程序无法正常运行的问题
目录 一.链接.exe文件的.dll动态链接库 1.1.可以利用QT官网提供的工具windeployqt 生成方式见如下: 1.2.使用脚本文件 二.使用绿色汉化版打包小程序inno setup5.5 ...
- Linux Qt打包发布应用程序
1.新建脚本文件pack.sh SensorMaster.sh (1)pack.sh #!/bin/sh exe="SensorMaster" #你需要发布的程序名称 des=&q ...
- 【Qt】在ubuntu上打包发布Qt程序,可以不依赖Qt环境
参考博客 https://blog.csdn.net/theArcticOcean/article/details/68069964 https://blog.csdn.net/hjl_1991/ar ...
- QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64)
QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64) 1.编译方式介绍: 2.动态编译方式打包发布QT程序: 方法一:手动复制 方法二:使用工具 问题& ...
- 麒麟系统开发笔记(八):在国产麒麟系统上使用linuxdeployqt发布qt程序
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/127484901 红胖子(红模仿)的博文大全:开发技术集 ...
- Windows下VS2019软件打包发布 2020-11-19
Windows下VS2019软件打包发布 一.配置环境 二.实际步骤 1.添加Setup到解决方案 2.添加文件及主输出 3.重要!!!!!!!! 4.最终打包 一.配置环境 很多使用者的电脑中并没有 ...
- qt命令行程序启动外部进程_QT之程序打包发布
1.引言 QT开发完之后,如果直接把exe文件发给别人,是没法直接用的,因为会提示缺少很多库,一种方法是把这些库拷贝出来,一起发过去,但是这样不方便且文件很大,所以需要一种文件打包发布的方法. 2.环 ...
- qt调用linux 进程,Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u014746574/article/d ...
- Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)
Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本) 转载于:https://www.cnblogs.com/zhehan54/p/9549017.html
最新文章
- 2021年大数据常用语言Scala(三十八):scala高级用法 隐式转换和隐式参数
- Android之在linux环境不通过TAG快速过滤日志
- Python中的虚拟环境-virtualenv
- win11如何取消开机自检 windows11取消开机自检的设置方法
- python dbf转excel_如何在python中将dbf转换为csv?
- 无线打印服务器三星3200,求助三星3200打印机“USB打印机不可用”
- SI24R1引脚及软硬件中文开发资料
- 【计算机网络】“三次握手”通俗解释
- 大学生IT创业还有神话吗?
- 删除右键菜单中多余项
- 算法与数据结构 - 数组详解
- 鸡兔同笼之Python函数
- 奇安信和深信服哪个好_你为什么从深信服离职?
- Vue 2.x折腾记 - (17) 基于Ant Design Vue 封装一个配置式的表单组件
- 企业内网怎么连接外网?
- archlinux安装nvidia驱动
- 洛谷 P2698 [USACO12MAR]花盆Flowerpot 单调队列
- 【gitee报用户名和密码错误[session-694cc0ab] chenbingxin: Incorrect username or password (access token)】
- java打包成docker images
- c# 控制音量大小 CoreAudioApi
热门文章
- 学习java的步骤_java学习的基本步骤
- java 方法中定义类_在Java方法中使用类定义
- oracle+创建序列自增,oracle序列详解和建立自增主键
- html简单网页代码表白_表白网页代码,不会代码也可以操作,告别单身
- Serverless 时代 DevOps 的最佳打开方式
- 阿里雷卷:Reactive 基金会的成立将对开发方式带来哪些影响?
- APP元素定位操作API
- Python中文件的介绍以及操作
- dao传递类参数 mybatis_MyBatis DAO层传递参数到mapping.xml 几种方式
- sougou ubuntu 优麒麟_优麒麟(Ubuntu Kylin)17.04 正式版及银河麒麟社区版发布