PHP8 Phar、Tar 和 Zip 的比较
三种支持的文件格式的优点和缺点是什么 PHAR 扩展?本表试图解决这一问题。
特征 | 法尔 | 需要 | 拉链 |
---|---|---|---|
标准文件格式 | 不 | 是的 | 是的 |
可以在没有 Phar 扩展 [1] 的情况下执行 | 是的 | 不 | 不 |
每个文件压缩 | 是的 | 不 | 是的 |
整体存档压缩 | 是的 | 是的 | 不 |
全存档签名验证 | 是的 | 是的 | 是的 |
特定于 Web 的应用程序支持 | 是的 | 是的 | 是的 |
每个文件的元数据 | 是的 | 是的 | 是的 |
全存档元数据 | 是的 | 是的 | 是的 |
存档创建/修改 [2] | 是的 | 是的 | 是的 |
完全支持所有流包装器功能 | 是的 | 是的 | 是的 |
即使 phar.readonly=1 [3] 也可以创建/修改 | 不 | 是的 | 是的 |
小技巧
[1] PHP 只能直接访问 Phar 存档的内容 没有 Phar 扩展名,如果它使用的是提取 phar 存档内容的 a。存根 创建者 Phar::createDefaultStub() 提取 PHAR 存档,并从临时目录运行其内容 如果未找到 PHAR 扩展。stub
小技巧
[2] 所有写入权限都需要 在php.ini中或直接在命令行中禁用。phar.readonly
小技巧
[3] 只有 tar 和 zip 档案没有 如果 phar.readonly=1,则可以创建文件名,并且没有可执行存根。.phar.phar/stub.php