La clase Phar soporta la lectura y la manipulación de los archivos Phar, así como la iteración a través de la funcionalidad heredada de la clase RecursiveDirectoryIterator. Con el soporte de la interfaz ArrayAccess, los ficheros contenidos en un archivo Phar pueden ser accedidos como si fueran miembros de un array asociativo.
  La clase PharData extiende la clase Phar, y
  permite la creación y modificación de archivos tar y zip no ejecutables (datos) incluso si
  phar.readonly=1 en php.ini. Por lo tanto,
  PharData::setAlias() y PharData::setStub()
  están ambas desactivadas ya que los conceptos de alias y contenedor están restringidos a
  los archivos phar ejecutables.
 
Es importante señalar que cuando un archivo Phar es creado, la ruta completa debe ser pasada al constructor del objeto Phar. Una ruta relativa impediría la inicialización.
  Suponiendo que $p es un objeto inicializado de esta forma:
 
<?php
$p = new Phar('/ruta/hacia/monphar.phar', 0, 'monphar.phar');
?>
  Un archivo Phar vacío será creado como /ruta/hacia/monphar.phar,
  o si /ruta/hacia/monphar.phar ya existe, será abierto
  de nuevo. El término monphar.phar demuestra el concepto de un alias
  que puede ser utilizado para referenciar /ruta/hacia/monphar.phar en URLs como esto:
 
<?php
// estas dos llamadas a file_get_contents() son equivalentes si
// /ruta/hacia/monphar.phar tiene un alias explícito de "monphar.phar"
// en su manifiesto, o si el phar fue inicializado con la instanciación de
// el objeto Phar del ejemplo anterior
$f = file_get_contents('phar:///ruta/hacia/monphar.phar/algo.txt');
$f = file_get_contents('phar://monphar.phar/algo.txt');
?>
  Con el objeto Phar $p recién creado,
  las siguientes cosas son posibles:
  
$a = $p['fichero.php'] crea una PharFileInfo
     que se refiere al contenido de phar://monphar.phar/fichero.php
    
   $p['fichero.php'] = $v crea un nuevo fichero
     (phar://monphar.phar/fichero.php), o sobrescribe
     un fichero existente dentro de monphar.phar.  $v
     puede ser una cadena o un puntero a un fichero abierto, en cuyo caso
     el contenido del fichero será utilizado para crear el nuevo fichero. Tenga en cuenta que
     $p->addFromString('fichero.php', $v) es equivalente en términos de
     funcionalidad al caso anterior. También es posible añadir el contenido de un fichero
     con $p->addFile('/ruta/hacia/fichero.php', 'fichero.php').
     Finalmente, un directorio vacío puede ser creado con
     $p->addEmptyDir('vacío').
    
   isset($p['fichero.php']) puede ser utilizado para determinar
     si phar://monphar.phar/fichero.php existe dentro de
     monphar.phar.
    
   unset($p['fichero.php']) elimina
     phar://monphar.phar/fichero.php de
     monphar.phar.
    
   Además, el objeto Phar es el único medio de acceder a los metadatos específicos de Phar, mediante Phar::getMetadata(), y es también el único medio de establecer o recuperar el contenedor del cargador del archivo Phar mediante Phar::getStub() y Phar::setStub(). Además, la compresión para el archivo Phar completo puede ser manipulada solo mediante la clase Phar.
La lista completa de funcionalidades del objeto Phar está documentada a continuación.
La clase PharFileInfo extiende la clase SplFileInfo y añade varios métodos para manipular los metadatos específicos de Phar de un fichero contenido en un Phar, tales como manipular la compresión o los metadatos.
