zoukankan      html  css  js  c++  java
  • 使用Phar来打包发布PHP程序

    From: http://koda.iteye.com/blog/2087021

    简单来说,Phar就是把Java界的jar概念移植到了PHP界。

    Phar可以将一组PHP文件进行打包,还可以创建默认执行的stub(或者叫做 bootstrap loader),Phar可以选择是否进行压缩,可选gzip和bzip2格式。

    下面举例说明如何创建和使用Phar:

    假设我们的项目名称是user,包含三个文件:

    user/user.class.php

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?php
     
    class user {
        private $name="anonymous";
        private $email="anonymous@nonexists.com";
     
        public function set_email($email) {
            $this->email=$email;
        }
        public function set_name($name) {
            $this->name=$name;
        }
        public function introduce() {
            echo "My name is $this->name and my email address is $this->email. ";
        }
     
    }

    user/user.func.php

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    require_once "user.class.php";
     
    function make_user($name,$email) {
        $u=new user();
        $u->set_name($name);
        $u->set_email($email);
        return $u;
    }
     
    function dump_user($u) {
        $u->introduce();
    }

    user/test.php

    1
    2
    3
    4
    5
    6
    7
    <?php
    require_once "user.class.php";
     
    $u=new user();
    $u->set_name("laomeng");
    $u->set_email("laomeng@163.com");
    $u->introduce();

    然后我们使用如下PHP程序创建Phar文件:

    make_phar.php

    1
    2
    3
    4
    5
    <?php
    $phar new Phar('user.phar', 0, 'user.phar');
    $phar->buildFromDirectory(dirname(__FILE__) . '/user');
    $phar->setStub($phar->createDefaultStub('test.php''test.php'));
    $phar->compressFiles(Phar::GZ);

    执行 php make_phar.php后,可以在当前目录发现一个叫做user.phar的文件。

    我们可以直接执行user.phar文件:

    php user.phar,这个相当于执行user/test.php

    我们还可以引用此文件:

    test_phar.php

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    require_once "user.phar";
    require_once "phar://user.phar/user.class.php";
    $u=new user();
    $u->set_name("mengguang");
    $u->set_email("mengguang@gmail.com");
    $u->introduce();
     
    require_once "phar://user.phar/user.func.php";
     
    $u=make_user("xiaomeng","xiaomeng@163.com");
    dump_user($u);

    参考资料:

    https://php.net/manual/en/book.phar.php

     
  • 相关阅读:
    博客园的使用和设置
    关于递推算法求解约瑟夫环问题P(n,m,k,s)
    HTML超链接和路径
    HTML文本元素标签
    HTML前序
    Java正则表达式验证至少6位表达式中至少包含数字大小写字母中的一种
    创建自己的第一个Vue项目
    查看端口及进程
    Java读取数据库(Oracle,MySQL,PostgresSQL)表信息以及字段信息生成Word文档
    启动项目报错ORA-12505, TNS:listener does not currently know of SID given in
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/5336259.html
Copyright © 2011-2022 走看看