Phar 扩展支持的三种文件格式的优缺点是什么?此表试图回答这个问题。
特性 | Phar | Tar | Zip |
---|---|---|---|
标准文件格式 | 否 | 是 | 是 |
无需 Phar 扩展即可执行 [1] | 是 | 否 | 否 |
每个文件的压缩 | 是 | 否 | 是 |
整个归档文件的压缩 | 是 | 是 | 否 |
整个归档文件的签名验证 | 是 | 是 | 是 |
Web 特定应用程序支持 | 是 | 是 | 是 |
每个文件的元数据 | 是 | 是 | 是 |
整个归档文件的元数据 | 是 | 是 | 是 |
归档创建/修改 [2] | 是 | 是 | 是 |
完全支持所有流封装器函数 | 是 | 是 | 是 |
即使 phar.readonly=1 也可以创建/修改 [3] | 否 | 是 | 是 |
[1] 如果 PHP 使用 stub
提取 Phar 归档文件的内容,则无需 Phar 扩展即可直接访问 Phar 归档文件的内容。由 Phar::createDefaultStub() 创建的存根会提取 Phar 归档文件并在找不到 Phar 扩展的情况下从临时目录运行其内容。
[2] 所有写访问都需要在 php.ini 或命令行中直接禁用 phar.readonly
。
[3] 如果 phar.readonly=1,则只能创建文件名中没有 .phar
且没有可执行存根 .phar/stub.php
的 Tar 和 Zip 归档文件。