<?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 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'phar.fileformat.phar.php',
    1 => 'Formato de arquivo phar',
    2 => 'Formato de arquivo phar',
  ),
  'up' => 
  array (
    0 => 'phar.fileformat.php',
    1 => 'O que faz um phar ser um phar e n&atilde;o um tar ou um zip?',
  ),
  'prev' => 
  array (
    0 => 'phar.fileformat.zip.php',
    1 => 'Phars baseados em Zip',
  ),
  'next' => 
  array (
    0 => 'phar.fileformat.flags.php',
    1 => 'Sinalizadores globais Phar em mapa de bits',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    '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.phar" class="section">
 <h2 class="title">Formato de arquivo phar</h2>
 <p class="para">
  O formato do arquivo phar é literalmente definido como stub/manifesto/conteúdo/assinatura e
  armazena as informações cruciais do que está incluído no arquivo phar em seu
  <code class="literal">manifest</code>o.
 </p>
 <p class="para">
  O manifesto Phar é um formato altamente otimizado que permite a especificação por arquivo
  da compactação, das permissões e até mesmo dos metadados
  definidos pelo usuário, como usuário ou grupo do arquivo. Todos os valores maiores que 1 byte são armazenados
  na ordem little-endian, com exceção da versão da API, que
  por razões históricas é armazenada como 3 nibbles na ordem big-endian.
 </p>
 <p class="para">
  Todos os sinalizadores não utilizados são reservados para uso futuro e não devem ser usados
  para armazenar informações personalizadas. Use o recurso de metadados por arquivo
  para armazenar informações personalizadas sobre arquivos específicos.
 </p>
 <p class="para">
  O formato básico de arquivo de um manifesto de arquivo Phar é o seguinte:
 </p>
 <p class="para">
 <table class="doctable table">
  <caption><strong>Formato global de manifesto Phar</strong></caption>
  
   <thead>
    <tr>
     <th>Tamanho em bytes</th>
     <th>Descrição</th>
    </tr>

   </thead>

   <tbody class="tbody">
    <tr>
     <td>4 bytes</td>
     <td>Comprimento do manifesto em bytes (limite de 1 MB)</td>
    </tr>

    <tr>
     <td>4 bytes</td>
     <td>Número de arquivos no Phar</td>
    </tr>

    <tr>
     <td>2 bytes</td>
     <td>Versão da API do manifesto Phar (atualmente 1.0.0)</td>
    </tr>

    <tr>
     <td>4 bytes</td>
     <td>Sinalizadores globais Phar em mapa de bits</td>
    </tr>

    <tr>
     <td>4 bytes</td>
     <td>Comprimento do apelido Phar</td>
    </tr>

    <tr>
     <td>??</td>
     <td>Apelido Phar (comprimento com base no anterior)</td>
    </tr>

    <tr>
     <td>4 bytes</td>
     <td>Comprimento dos metadados Phar (<code class="literal">0</code> para nenhum)</td>
    </tr>

    <tr>
     <td>??</td>
     <td>Metadados Phar serializados, armazenados no formato <span class="function"><a href="function.serialize.php" class="function">serialize()</a></span></td>
    </tr>

    <tr>
     <td>pelo menos 24 * número de bytes de entradas</td>
     <td>entradas para cada arquivo</td>
    </tr>

   </tbody>
  
 </table>

 </p>
</div><?php manual_footer($setup); ?>