phar文件是一个特殊的php文件,可以理解为一个压缩包,但是常见的压缩工具并不能打开这个phar文件。用记事本打开这个phar文件的话,你就会发现phar文件是由明文的php文件和尾部的一些乱码所组成的。

phar文件把很多个php文件合N为1,然后留出一个虚拟的入口文件,来加载其他的虚拟文件。这N合1整体作为库文件,提供给其它php代码作为一个独立的功能模块。最著名的例子:composer.phar就是作为phar文件进行分发的。

在本文中,苏南大叔将要讲述:如何新建一个phar文件。

开启php.iniphar相关设置

本文的目的是创建一个phar文件,这种phar文件的创建,需要开启一个特殊php.ini选项。然而phar的使用,并不需要开启这个选项,默认就是可以使用phar文件的。所以,如果您的目的并不是创建phar文件的话,就无需理会本项内容。

我们需要设置phar.readonlyoff,或者为0。这个项目的默认值是on

phar.readonly = Off

苏南大叔:如何新建一个php的phar打包文件? - 001
如何新建一个php的phar打包文件?(图6-1)

如果项目phar.readonly没有开启的话,试图创建一个phar文件时,就会得到如下错误提示:

Fatal error: Uncaught exception 'UnexpectedValueException' with message 'Cannot write to archive - write operations restricted by INI setting'

苏南大叔:如何新建一个php的phar打包文件? - 000
如何新建一个php的phar打包文件?(图6-2)

如果您设置好了这个项目,您可以在phpinfo里面看到如下的截图。

苏南大叔:如何新建一个php的phar打包文件? - 002
如何新建一个php的phar打包文件?(图6-3)

下面的是mac系统下,相关设置截图。

苏南大叔:如何新建一个php的phar打包文件? - 099
如何新建一个php的phar打包文件?(图6-4)

效果截图

如果一切顺利的话,您就可以拿到我们的第一个phar文件了。然后就可以愉快的拿着phar文件,提供给大家做功能模块了。更多信息,请点击这里查看:https://doc.php.sh/zh/class.phar.html

苏南大叔:如何新建一个php的phar打包文件? - 003
如何新建一个php的phar打包文件?(图6-6)

值得说明的是:如果你增删了源目录中的文件,然后重启利用上述脚本打包phar的话。增加的文件会添加进去,而删除的文件依然会存在。这显示可能不是你想要的,所以,你可以考虑一下,在生产phar的脚本前,增加个unlink函数。

@unlink("phar.phar");
$phar = new Phar('phar.phar');
//....

结束语

苏南大叔认为:phar文件是php的一个流行发展趋势。虽然,目前来说,还没有引起大规模的使用,但是其便利性是非常显而易见的。所以,苏南大叔有理由认为:phar文件应该代替那些庞大而复杂的库文件而出现。

更多有关phar文件的更多经验文章,请点击这里:https://newsn.net/tag/phar/

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   php    phar

本站的忠实读者小伙伴,正在阅读下面这些文章: