phar包的外部调用方式,如何加载 phar 文件?
发布于 作者:苏南大叔 来源:程序如此灵动~走向成功道路上的读者,大家好。苏南大叔和大家讲述了这么多phar
文件的经验后,本篇文章中,我们再来讲述一下,phar
文件的使用问题。其实,本篇文章的内容,才是phar
文件最使用最使用的核心所在,其他的都是不实用的代码罢了。
对于一个使用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/ 。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。