我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

大多数情况下,大家是用phar-composer来构建基于composerphar包的。

苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - php-2-phar
如何利用phar-composer,打包php源码生成phar文件?(图12-1)

所以,在本篇文章中,苏南大叔就介绍一下,phar-composer的构建命令。其它的命令,如果您有兴趣,可以到官方文档上面去查看。

前言

phar.readonly=off

本文成功执行的前提依然是php.ini中的phar.readonly=off。如果开启pharreadonly的话,本文所述内容,是不会成功的。大家请注意这一点。

苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - 056
如何利用phar-composer,打包php源码生成phar文件?(图12-2)

打包当前目录

如果您自己的项目,是基于composer的。并且需要打包成phar文件。那么本条内容,就是您所需要的。我们需要在当前项目根目录下面,执行如下语句。

phar-composer build

但是这条语句顺利生成一个phar文件的前提是:该目录使用composer进行管理。也就是说:根目录下面应该有个composer.json。这个文件,我们可以通过下面命令生成。

composer init

这样的话,我们就符合这个phar-compser工具的执行条件了。事实上,代码还是我们的代码,仅仅多了个没有什么用途的composer.json文件而已。这个就免得我们大家再写个构建脚本了。还是挺容易的,推荐使用。如果您还是需要依赖包的话,您还可能需要下列命令。

composer install

苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - 054
如何利用phar-composer,打包php源码生成phar文件?(图12-3)

苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - 055
如何利用phar-composer,打包php源码生成phar文件?(图12-4)

苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - composer_error
如何利用phar-composer,打包php源码生成phar文件?(图12-5)

记得写个index.php文件在根目录下面,作为phar的存根文件。这个是默认零配置的。当然,如果你不喜欢使用index.php作为默认的存根文件的话,那么就可以还是使用传统的代码方式生成phar文件即可。

所以,正确完整的执行姿势是,其中的composer init就一路回车好了。

composer init
composer install
phar-composer build

然后就你可以得到一个phar文件了,需要注意的是:请确保index.php存根文件存在即可。

通过名称打包某个composer库

这个命令就涉及composer的大本营,https://packagist.org 了,我们如果想打包某个库的话,例如aliyuncs/oss-sdk-php,我们需要执行下面的命令。

苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - 057
如何利用phar-composer,打包php源码生成phar文件?(图12-6)

phar-composer build aliyuncs/oss-sdk-php

这个命令没有什么当前目录的说法,在哪里执行,最终的phar文件就会默认生成在什么地方。

苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - 058
如何利用phar-composer,打包php源码生成phar文件?(图12-7)

通过git地址打包phar

还是以上述需求为例,我们打包一下aliyun的oss库。

phar-composer build https://github.com/aliyun/aliyun-oss-php-sdk.git

苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - 059
如何利用phar-composer,打包php源码生成phar文件?(图12-8)

这里需要注意的一点是:这里的git地址,似乎不能识别类似下面的这种地址。
git@github.com:aliyun/aliyun-oss-php-sdk.git

苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - 060
如何利用phar-composer,打包php源码生成phar文件?(图12-9)

通过命令行交互式打包

phar-composer

输入要打包的项目关键词,选择要打包的序号。

苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - cli_000
如何利用phar-composer,打包php源码生成phar文件?(图12-10)

选择要打包的项目的版本。
苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - cli_001
如何利用phar-composer,打包php源码生成phar文件?(图12-11)

打包
苏南大叔:如何利用phar-composer,打包php源码生成phar文件? - cli_002
如何利用phar-composer,打包php源码生成phar文件?(图12-12)

这里仅仅是演示作用,并不是说,这个打包好的phar一定能用。具体的还要看项目的源码情况,这个功能仅仅是用来打包的。

结论

phar-composer的git主页上面,还有很多phar-composer的使用方法,大家感兴趣的话,可以去看看。这里,苏南大叔就不一一介绍了。毕竟,我们的需求也就是构建个phar文件而已。您说,是吧?

更多有关phpphar的经验文章,请点击这里查看:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

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

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