Phar文件

  phar 扩展名文件提供了一种将整个PHP应用程序打包放入一个被称之为phar(PHP archive)的文件从而更加容易便利地发布和安装的方法。就像是java的jar文件有点类似。除了这个功能外,Phar扩展名也提供一种对文件格式的抽象方法,以便通过PharData类创建和操作tar/zip文件,非常类似于PDO提供了一种统一的访问不同数据库的借口一样。和PDO不一样的是(POD不能再不同数据库之间转换),phpar可以提供通过简单一行代码就能在tar,zip和phar文件格式之间互相转换的功能。

  到底什么是phar?

  phar archives提供一种打包多个文件到一个文件的便利方法。这样,一个phar archive提供了一种只用一个文件就能发布整个php application的方法。另外phar archives可以被php像其他php文件一样被执行,无论是在命令行上,还是在web server上。

时间: 2024-11-11 09:04:07

Phar文件的相关文章

phar文件的使用

1.用php命令行 php phar文件 2.生成bat文件,在命令行下使用,以composer.phar为例 (1)把composer.phar移动到php.exe所在目录 (2)在php.exe所在目录打开命令行窗口执行echo @php "%~dp0composer.phar" %*>composer.bat

打包phar文件过大的问题。

根据一个开源工具得到的灵感,使用流打包,并使用token_get_all移除了所用PHP文件的空白.现在打包出来只有93k了.谢谢关注. 我一个简单的文件,加上一个symfony的process包,打包出来竟有125M之巨,而composer那么多文件打包出来只有1.6M,百思不得其解.附上打包代码: <?php $pharFilename = 'deploy.phar'; if (file_exists($pharFilename)) { e('remove old file...'); un

PHP中phar包的使用

PHP5.3之后支持了类似Java的jar包,名为phar.用来将多个PHP文件打包为一个文件. 首先需要修改php.ini配置将phar的readonly关闭,默认是不能写phar包的,include是默认开启的. phar.readonly => On 创建一个phar压缩包 <?php $phar = new Phar('swoole.phar'); $phar->buildFromDirectory(__DIR__.'/../', '/\.php$/'); $phar->c

使用Phar来打包发布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 {     pr

使用phar上线你的代码包

在我前一阵子写的一篇文章<新版 SegmentFault 重构之系统架构>中,很多人对其中提到的利用phar上线代码比较感兴趣,我就在这边跟大家分享下我目前的做法. 哪些项目适合phar打包上线? 其实这种方法没有什么特别的限制,只有一条,你的程序是单一入口的,对web项目也就是说,所有的http请求都只有一个php文件作为处理方(大多数程序就是index.php). 如果你的程序结构是这样的,那么基本可以无障碍切换到这种上线模式.实际上绝大多数现代的php框架构建的项目都是单一入口的结构了.

简单使用 PHP Phar 打包php代码 笔记

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

PHP归档phar性能测试

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

Natas33 Writeup(Phar反序列化漏洞)

Natas33: 又是一个上传文件的页面,源码如下: // graz XeR, the first to solve it! thanks for the feedback! // ~morla class Executor{ private $filename=""; //三个私有参数 private $signature='adeafbadbabec0dedabada55ba55d00d'; private $init=False; function __construct(){

推荐!国外程序员整理的 PHP 资源大全

iadoz 在 Github 发起维护的一个 PHP 资源列表,内容包括:库.框架.模板.安全.代码分析.日志.第三方库.配置工具.Web 工具.书籍.电子书.经典博文等等. 依赖管理 依赖和包管理库 Composer/Packagist:一个包和依赖管理器 Composer Installers:一个多框架Composer库安装器 Pickle:一个PHP扩展安装器 其他的依赖管理 其他的相关依赖管理 Satis:一个静态Composer存储库生成器 Composition:一个在运行时检查C