Composer / 有个文件叫做phar

684 阅读2分钟
原文链接: nai8.me

相信很多同学都是因为使用composer后才发现.phar这种格式的,今天我们就来说说phar的生辰八字。

用一张图来告诉你phar到底是个啥!来看。

是的,phar代表一种包文件,通过将许多PHP代码及资源(比如图片、样式等等)捆绑到一个单独的存档文件中来实现应用程序和库的发布。

就比如我们使用的composer其实就是一组PHP文件 + 一些资源,它们被绑定成了phar归档文件。当然phar还可以转换tar或zip。

不管怎么说,phar是一组php代码,也正因为这样,我们使用了如下代码

php composer.phar require abei2017/yii2-wx

就像执行一个php文件去执行composer.phar,当然我们有必要看下composer.phar的结构。

这俨然就是一个PHP的应用。

这让我们想到了以后我们可以将我们的php应用打包成phar文件,然后发布,执行,岂不美哉。

你还真说对了~~~~

PHP5.3 之后支持了类似 Java 的 jar 包,名为 phar。用来将多个 PHP 文件打包为一个文件。这个特性使得 PHP也可以像 Java 一样方便地实现应用程序打包和组件化。一个应用程序可以打成一个 Phar 包,直接放到 PHP-FPM 中运行。

看到了吧,phar是php5.3+诞生的并且目的就是实现应用程序打包和组件化,自PHP5.3+开始内置支持,你不需要安装任何扩展就可以直接读取phar文件,即便是转换成了zip或tar,也可以通过安装phar扩展来读取,看得出来当时PHP团队对phar的重视。

至于为何至今也没有火起来我想更多是推广问题和PHP程序员世界开源大统的环境影响。

我想你会问,那我们怎么建立phar那?关于这个在很久以前IBM开发社区给出了教程,我就不在重复了,感兴趣的可以围观下。www.ibm.com/developerwo…