入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

使用Phar来打包发布PHP程序

创建时间:2015-06-25 投稿人: 浏览次数:2387

使用Phar来打包发布PHP程序

博客分类:  PHP乐园

简单来说,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

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。