Phar 形式と Tar 形式、Zip 形式の徹底比較

phar 拡張モジュールがサポートする 3 つのファイル形式って、何がどう違うのでしょう? その答えを次の表にまとめました。

機能マトリックス: Phar vs. Tar vs. Zip
機能PharTarZip
一般的なファイル形式NoYesYes
Phar 拡張モジュールなしでの実行 [1]YesNoNo
ファイル単位での圧縮YesNoYes
アーカイブ全体の圧縮YesYesNo
アーカイブ全体のシグネチャによる検証YesYesYes
ウェブアプリケーションへの対応YesYesYes
ファイルごとのメタデータYesYesYes
アーカイブ単位のメタデータYesYesYes
アーカイブの作成/変更 [2]YesYesYes
すべてのストリームラッパー関数への対応YesYesYes
phar.readonly=1 の場合でも作成/変更が可能 [3]NoYesYes

ヒント

[1] Phar 拡張モジュールが使用できない環境で Phar アーカイブの中身に PHP からアクセスする場合は、その スタブ を使用します。ここに phar アーカイブの中身を展開するコードが含まれています。 phar 拡張モジュールが見つからない場合は、 Phar::createDefaultStub() で作成したスタブが phar アーカイブを展開し、テンポラリディレクトリ内でそれを実行します。

ヒント

[2] 書き込みアクセスを行うには、php.ini あるいはコマンドラインで phar.readonly を無効にする必要があります。

ヒント

[3] tar および zip 形式のアーカイブでファイル名に .phar がつかない、かつ実行スタブ .phar/stub.php を含まないファイルは phar.readonly=1 でも作成できます。

To Top