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

走向成功道路上的读者,大家好。苏南大叔和大家讲述了这么多phar文件的经验后,本篇文章中,我们再来讲述一下,phar文件的使用问题。其实,本篇文章的内容,才是phar文件最使用最使用的核心所在,其他的都是不实用的代码罢了。

苏南大叔:phar包的外部调用方式,如何加载 phar 文件? - 外部调用phar文件
phar包的外部调用方式,如何加载 phar 文件?(图1-1)

对于一个使用phar文件的php程序员,掌握本篇文章的内容,才是核心精神所在。

phar文件的存根入口文件

从以前的经验文章中,我们可以知道,phar文件是可以指定存根引导文件的,默认情况下是phar源码下的index.php。当然,我们也可以设置为别的文件。这点不再赘述,如果您想知道详细内容,请点击这里:

因为本篇文章关心的内容,只会与第一个存根文件参数有关,所以这里,并不需要理会createdefaultstub的第二个参数。

//...
$phar->setStub($phar->createDefaultStub('lib.php','index.php'));
//...

上述语句中的lib.php,就是phar提供给其它php用于require或者include的。只不过lib.php并不用写出来,是隐式调用的。如果phar源码使用lib.php作为入口,生成phar.phar文件的话,那么下面两句话是一样的效果。

require "phar.phar";
require "phar/lib.php";

所以,在lib.php中,我们需要把所有对外的类库都要加载进来。以便提供给外部使用。

加载phar文件的单独文件

phar文件是一系列文件的合集,那么除了入口文件外,如果有一些文件没有被加载使用到,这些文件也是可以单独引用的。下面的代码就是范例。

require "phar://phar.phar/single.func.php";
echo file_get_contents("phar://phar.phar/txt.txt");

这是个特殊的phar虚拟路径,实际的源码目录里面,如果没有对应文件存在的话,也是可以在构建phar的时候,虚拟个类似txt.txt的文件到phar文件的。虚拟文件的方法,将在后续phar经验文章中给出。敬请关注。

利用别名加载phar

每个phar都可以有个固定不变的名字,这个别名是在构建phar文件的时候,使用setAlias设置的。具体可以参见:https://newsn.net/say/php-phar-create.html

假设真实名称为phar.phar的文件,有个别名叫做p.phar的话,那么上一条代码就可以改成:

require "phar.phar";
require "phar://p.phar/single.func.php";
echo file_get_contents("phar://p.phar/txt.txt");

结论

phar文件的使用,实际上非常简单。并且本文中所涉及的使用方式,并不用修改nginx来识别phar。都是默认就可以使用的,简单方便快捷。大多数的情况下,phar文件的使用,仅仅如此而已。

苏南大叔提示您:更多phar文件的实用经验教程,请点击这里加载:https://newsn.net/tag/phar/

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

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

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

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