本博客不欢迎:各种镜像采集行为,请尊重知识产权法律法规。大家都是程序员,不要闹得不开心。

一般来说,都是先创建好各种源码文件后,再进行phar的打包的。事实上,也可以不创建实体文件,来构建一个phar源码包。本文讲述的内容就是:没有实体源码文件,如果构建一个phar包。

苏南大叔:php如何虚拟文件源码,以构建phar文件包? - php-phar-fake
php如何虚拟文件源码,以构建phar文件包?(图2-1)

正常的构建代码

本文的代码很简单,需要对照这篇文章的内容来学习本文,

先回顾一下正常的构建代码:

$phar = new Phar('phar.phar');
$phar->buildFromDirectory(__DIR__.'/phar/');
$phar->compressFiles(Phar::GZ);
$phar->setAlias("p.phar");
$phar->setStub($phar->createDefaultStub('lib.php'));

虚拟文件构建代码

苏南大叔将使用mapPhar方法来设置一个别名'p.phar',并且写入一个虚拟的txt文件。setStub内部的内容,是构建存根文件的默认格式内容。详细内容,请点击:

$p = new Phar("phar.phar");
$p->compressFiles(Phar::GZ);
$p->startBuffering();
$p['file1.txt'] = 'file1';
$p->setStub("<?php
    Phar::mapPhar('p.phar');
__HALT_COMPILER();");
$p->stopBuffering();

苏南大叔:php如何虚拟文件源码,以构建phar文件包? - code
php如何虚拟文件源码,以构建phar文件包?(图2-2)

结论

这种方式可以添加虚拟的文件到phar内部,等同于实际的通过源码创建phar的过程。更多有关phar的相关经验文章,请点击这里查看。

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