php文章归档怎么做,php归档格式phar文件详解 | 木凡博客

本文介绍了如何在PHP中使用phar文件,包括创建phar文件(设置入口、处理权限)、引入和使用phar文件,以及还原phar文件的过程。重点讲解了phar文件的创建与使用方法,适合快速部署和简化项目结构。
摘要由CSDN通过智能技术生成

phar (“Php ARchive”) 是PHP里类似于JAR的一种打包文件。如果你使用的是PHP5.3或更高版本,那么phar后缀文件是默认开启支持的,你不需要任何其他的安装就可以使用它。

phar归档文件有三种格式:tar归档、zip归档、phar归档,前两种执行需要php安装phar 扩展支持,用的也比较少,这里主要讲phar归档格式。

phar文件缺省状态是只读的,使用phar文件不需要任何的配置,部署非常方便。因为我们要创建phar文件,所以需要允许写入phar文件,这需要修改一下php.ini。找到phar.readonly将其修改为phar.readonly = off,注意不要忘记去掉前面的注释分号;。

一、创建phar文件

我们建立项目文件夹project,目录内结构如下:

static

-common.js

-app.css

lib

-liba.php

template

-msg.html

index.php

common.php

1

2

3

4

5

6

7

8

9

static

-common.js

-app.css

lib

-liba.php

template

-msg.html

index.php

common.php

项目文件有了,现在我们开始创建phar文件。首先在project同级目录下创建文件build.php,用于产生phar格式文件。内容如下:

PHP

/**

* @Author 木凡

* @DateTime 2020-04-24T15:03:49+0800

* @Domian http://mounui.com

*/

// 产生一个myphar.phar文件

$phar = new Phar('myphar.phar');

// 添加project里面的所有文件到myphar.phar文件

$phar->buildFromDirectory(dirname(__FILE__) . '/project');

// 设置执行时的入口文件,这里都设置为index.php。注意:如果项目不具备单一执行入口则不宜使用phar归档文件

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

1

2

3

4

5

6

7

8

9

10

11

/**

* @Author   木凡

* @DateTime 2020-04-24T15:03:49+0800

* @Domian   http://mounui.com

*/

// 产生一个myphar.phar文件

$phar=newPhar('myphar.phar');

// 添加project里面的所有文件到myphar.phar文件

$phar->buildFromDirectory(dirname(__FILE__).'/project');

// 设置执行时的入口文件,这里都设置为index.php。注意:如果项目不具备单一执行入口则不宜使用phar归档文件

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

new Phar的参数是压缩包的名称。buildFromDirectory指定压缩的目录,第二个参数可通过正则来制定压缩文件的扩展名。执行build.php文件就创建了一个myphar.phar文件。

在创建过程中可能会遇到错误提示“creating archive "myphar.phar" disabled by the php.ini setting phar.readonly”,这里就是没有修改php.ini中phar.readonly = off引起的。

二、使用phar文件

在使用的时候我们只需要直接引入phar文件就可以了

PHP

/**

* @Author 木凡

* @DateTime 2020-04-24T15:10:55+0800

* @Domian http://mounui.com

*/

// 当我们使用index.php文件的时候只需要引入myphar.phar就可以,因为创建的时候我们设置的入口文件就是index.php

include "myphar.phar";

// 使用其他文件的时候不仅要引入phar,还要单独引入要使用的文件

include "phar://myphar.phar/common.php";

1

2

3

4

5

6

7

8

9

/**

* @Author   木凡

* @DateTime 2020-04-24T15:10:55+0800

* @Domian   http://mounui.com

*/

// 当我们使用index.php文件的时候只需要引入myphar.phar就可以,因为创建的时候我们设置的入口文件就是index.php

include"myphar.phar";

// 使用其他文件的时候不仅要引入phar,还要单独引入要使用的文件

include"phar://myphar.phar/common.php";

在实际项目中一般会在入口文件中导入其他所需的全部文件,所以如果项目不具备单一入口不宜使用phar归档文件。

三、还原phar文件

PHP

/**

* @Author 木凡

* @DateTime 2020-04-24T15:15:55+0800

* @Domian http://mounui.com

*/

// 需要还原的phar文件,路径不要写错

$phar = new Phar('myphar.phar');

// 这里填写phar文件的还原路径和名称

$phar->extractTo('myphar');

1

2

3

4

5

6

7

8

9

/**

* @Author   木凡

* @DateTime 2020-04-24T15:15:55+0800

* @Domian   http://mounui.com

*/

// 需要还原的phar文件,路径不要写错

$phar=newPhar('myphar.phar');

// 这里填写phar文件的还原路径和名称

$phar->extractTo('myphar');

经过打包归档后的文件在使用的时候并不会影响效率,而且方便部署。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值