phar 擴充功能支援的三種檔案格式各有什麼優缺點?此表格嘗試回答這個問題。
功能 | Phar | Tar | Zip |
---|---|---|---|
標準檔案格式 | 否 | 是 | 是 |
無需 Phar 擴充功能即可執行 [1] | 是 | 否 | 否 |
單檔壓縮 | 是 | 否 | 是 |
全檔案壓縮 | 是 | 是 | 否 |
全檔案簽章驗證 | 是 | 是 | 是 |
網路應用程式支援 | 是 | 是 | 是 |
單檔詮釋資料 | 是 | 是 | 是 |
全檔案詮釋資料 | 是 | 是 | 是 |
檔案建立/修改 [2] | 是 | 是 | 是 |
完全支援所有串流包裝器函式 | 是 | 是 | 是 |
即使 phar.readonly=1 也可以建立/修改 [3] | 否 | 是 | 是 |
[1] 如果 PHP 使用的是提取 Phar 封存內容的 stub
,則即使沒有 Phar 擴充功能,它也能直接存取 Phar 封存的內容。如果找不到 Phar 擴充功能,由 Phar::createDefaultStub() 建立的 stub 會提取 Phar 封存,並從暫存目錄執行其內容。
[2] 所有寫入操作都需要在 php.ini 中或直接在命令列上停用 phar.readonly
。
[3] 如果 phar.readonly=1,則只能建立檔名中沒有 .phar
且沒有可執行 stub .phar/stub.php
的 tar 和 zip 封存。