zoukankan      html  css  js  c++  java
  • 简单使用 PHP Phar 打包php代码 笔记

    Phar简介:
    Phar 归档的概念来自 Java™ 技术的 JAR 归档,它允许使用单个文件打包应用程序,这个文件中包含运行应用程序所需的所有东西。该文件不同于单个可执行文件,后者通常由编程语言生成,比如 C,因为该文件实际上是一个归档文件而非编译过的应用程序。因此 JAR 文件实际上包含组成应用程序的文件,但是考虑到安全性,不对这些文件进行仔细区分。Phar 扩展正是基于类似的理念,但是在设计时主要针对 PHP 的 Web 环境。同样,与 JAR 归档不同的是,Phar 归档可由 PHP 本身处理,因此不需要使用额外的工具来创建或使用。

    Phar 扩展对 PHP 来说并不是一个新鲜的概念。它最初使用 PHP 编写并被命名为 PHP_Archive,然后在 2005 年被添加到 PEAR 库。然而在实际中,解决这一问题的纯 PHP 解决方案非常缓慢,因此 2007 年重新编写为纯 C 语言扩展,同时添加了使用 SPL 的ArrayAccess 对象遍历 Phar 归档的支持。自那时起,人们做了大量工作来改善 Phar 归档的性能。

    创建 Phar
    创建 Phar 文件需要执行若干步骤。所有步骤需要用到某种形式的 PHP 命令完成创建,因为不存在用于创建归档的独立工具。

    1、
    在使用phar之前你需要修改php.ini 中的 phar.readonly = Off或则0 , 如图1,否则会报如下错误:
    Fatal error: Uncaught exception 'UnexpectedValueException' with message 'Cannot write to archive - write operations restricted by INI setting' in D:www estedu_pharuild.php:5 Stack trace: #0 D:www estedu_pharuild.php(5): Phar->buildFromDirectory('D:www estedu...') #1 {main} thrown in D:www estedu_pharuild.php on line 5

    图1
    注:在 PHP 的 Phar 归档内打开和引用文件时不需要使用到该设置。

    2、
    看一下我们打包的程序,我简单的写了一个demo叫blog,下面是程序清单 如图2,一共包含了4个文件和两个文件夹。

    图2
    看下入口文件index.php 如图3:

    图3
    我们运行一下看看:如图4

    图4

    输出可经典的Hello World!

    我们加上参数在运行一下看看:如图5

    图5

    demo能正常运行,没有问题

    3、
    准备打包程序build.php 如图6

    图6

    build.php文件代码 如图7

    图7

    4、
    开始打包,通过命令行模式进入build.php 文件所在目录,执行php build.php ,如果没有报错说明打包完成,如图8 。你会发现已经生成了blog.phar文件 如图9

    图8

    图9

    5、
    打包完成以后我们来使用这个打包文件。我新建了一个目录testphar,并且把刚打包的blog.phar文件拷贝过来了。
    我在新建一个index.php,我们在index.php里面使用blog.phar 如图10

    图10

    我们在运行一下index.php 如图11

    图11

    整个简单的phar使用过程算是完成了,是不是很简单,其实最近我也在学习。
    如果上面有什么误导之处,还请各位大牛略指点一二。

    ——在青春的路上,我们与你携手共进!
  • 相关阅读:
    atom无法安装插件的解决方法之一
    css3伪类温故知新
    flex 布局笔记
    NPM 无法下载任何包的原因,解决方法
    flex align-content中的描述的“多根轴线的对齐方式”中的“多根轴线”到底是什么
    nodejs express 静态文件的路径
    当函数传入参数是引用类型的几种情况和现象。
    关于NODE NPM 输入命令后没反应的问题
    no input file specified
    获取form提交的返回值
  • 原文地址:https://www.cnblogs.com/sajanray/p/4607213.html
Copyright © 2011-2022 走看看