phar 拡張モジュールがサポートする 3 つのファイル形式って、何がどう違うのでしょう? その答えを次の表にまとめました。
機能 | Phar | Tar | Zip |
---|---|---|---|
一般的なファイル形式 | No | Yes | Yes |
Phar 拡張モジュールなしでの実行 [1] | Yes | No | No |
ファイル単位での圧縮 | Yes | No | Yes |
アーカイブ全体の圧縮 | Yes | Yes | No |
アーカイブ全体のシグネチャによる検証 | Yes | Yes | Yes |
ウェブアプリケーションへの対応 | Yes | Yes | Yes |
ファイルごとのメタデータ | Yes | Yes | Yes |
アーカイブ単位のメタデータ | Yes | Yes | Yes |
アーカイブの作成/変更 [2] | Yes | Yes | Yes |
すべてのストリームラッパー関数への対応 | Yes | Yes | Yes |
phar.readonly=1 の場合でも作成/変更が可能 [3] | No | Yes | Yes |
[1] Phar 拡張モジュールが使用できない環境で Phar
アーカイブの中身に PHP からアクセスする場合は、その
スタブ
を使用します。ここに
phar アーカイブの中身を展開するコードが含まれています。
phar 拡張モジュールが見つからない場合は、
Phar::createDefaultStub() で作成したスタブが
phar アーカイブを展開し、テンポラリディレクトリ内でそれを実行します。
[2] 書き込みアクセスを行うには、php.ini あるいはコマンドラインで
phar.readonly
を無効にする必要があります。
[3] tar および zip 形式のアーカイブでファイル名に .phar
がつかない、かつ実行スタブ .phar/stub.php
を含まないファイルは phar.readonly=1 でも作成できます。