<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/phar.fileformat.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'phar.fileformat.comparison.php',
    1 => 'Phar 形式と Tar 形式、Zip 形式の徹底比較',
    2 => 'Phar 形式と Tar 形式、Zip 形式の徹底比較',
  ),
  'up' => 
  array (
    0 => 'phar.fileformat.php',
    1 => 'phar って、tar や zip とは何が違うの?',
  ),
  'prev' => 
  array (
    0 => 'phar.fileformat.stub.php',
    1 => 'Phar ファイルのスタブ',
  ),
  'next' => 
  array (
    0 => 'phar.fileformat.tar.php',
    1 => 'Tar 形式の phar アーカイブ',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/phar/fileformat.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="phar.fileformat.comparison" class="section">
  <h2 class="title">Phar 形式と Tar 形式、Zip 形式の徹底比較</h2>
  <p class="para">
   phar 拡張モジュールがサポートする 3 つのファイル形式って、何がどう違うのでしょう?
   その答えを次の表にまとめました。
  <table class="doctable table">
   <caption><strong>機能マトリックス: Phar vs. Tar vs. Zip</strong></caption>
   
    <thead>
     <tr>
      <th>機能</th>
      <th>Phar</th>
      <th>Tar</th>
      <th>Zip</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>一般的なファイル形式</td>
      <td>No</td>
      <td>Yes</td>
      <td>Yes</td>
     </tr>

     <tr>
      <td>Phar 拡張モジュールなしでの実行
       <a href="phar.fileformat.comparison.php#phar.fileformat.phartip" class="link">[1]</a>
      </td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
     </tr>

     <tr>
      <td>ファイル単位での圧縮</td>
      <td>Yes</td>
      <td>No</td>
      <td>Yes</td>
     </tr>

     <tr>
      <td>アーカイブ全体の圧縮</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>No</td>
     </tr>

     <tr>
      <td>アーカイブ全体のシグネチャによる検証</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
     </tr>

     <tr>
      <td>ウェブアプリケーションへの対応</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
     </tr>

     <tr>
      <td>ファイルごとのメタデータ</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
     </tr>

     <tr>
      <td>アーカイブ単位のメタデータ</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
     </tr>

     <tr>
      <td>アーカイブの作成/変更
       <a href="phar.fileformat.comparison.php#phar.fileformat.phartip2" class="link">[2]</a>
      </td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
     </tr>

     <tr>
      <td>すべてのストリームラッパー関数への対応</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
     </tr>

     <tr>
      <td>phar.readonly=1 の場合でも作成/変更が可能
       <a href="phar.fileformat.comparison.php#phar.fileformat.phartip3" class="link">[3]</a>
      </td>
      <td>No</td>
      <td>Yes</td>
      <td>Yes</td>
     </tr>

    </tbody>
   
  </table>

  </p>
  <p class="para" id="phar.fileformat.phartip">
   <div class="tip"><strong class="tip">ヒント</strong>
    <p class="para">
    [1] Phar 拡張モジュールが使用できない環境で Phar
    アーカイブの中身に PHP からアクセスする場合は、その
    <code class="literal">スタブ</code> を使用します。ここに
    phar アーカイブの中身を展開するコードが含まれています。
    phar 拡張モジュールが見つからない場合は、
    <span class="function"><a href="phar.createdefaultstub.php" class="function">Phar::createDefaultStub()</a></span> で作成したスタブが
    phar アーカイブを展開し、テンポラリディレクトリ内でそれを実行します。
    </p>
   </div>
  </p>
  <p class="para" id="phar.fileformat.phartip2">
   <div class="tip"><strong class="tip">ヒント</strong>
    <p class="para">
    [2] 書き込みアクセスを行うには、php.ini あるいはコマンドラインで
    <code class="literal">phar.readonly</code> を無効にする必要があります。
    </p>
   </div>
  </p>
  <p class="para" id="phar.fileformat.phartip3">
   <div class="tip"><strong class="tip">ヒント</strong>
    <p class="para">
    [3] tar および zip 形式のアーカイブでファイル名に <code class="literal">.phar</code>
    がつかない、かつ実行スタブ <code class="literal">.phar/stub.php</code>
    を含まないファイルは phar.readonly=1 でも作成できます。
    </p>
   </div>
  </p>
 </div><?php manual_footer($setup); ?>