Utilizar los archivos Phar : Introducción
 
  Los archivos Phar son idénticos en concepto a los archivos JAR
  de Java, pero están diseñados específicamente para las necesidades y
  la flexibilidad de las aplicaciones PHP. Un archivo Phar se utiliza
  para distribuir una aplicación PHP completa o una biblioteca
  en forma de un único archivo.
  Una aplicación en forma de archivo Phar se utiliza exactamente de
  la misma forma que cualquier otra aplicación PHP:
 
 
  
php aplicacionesympa.phar
  
 
 
  El uso de una biblioteca en forma de archivo Phar es el mismo que cualquier otra biblioteca PHP:
 
 
  
 
 
  El flujo phar proporciona el núcleo de la extensión phar, y
  es descrito en detalle aquí.
  El flujo phar permite el acceso a los ficheros contenidos en un archivo phar mediante las
  funciones estándar de ficheros fopen(), opendir(), y
  cualquier otra que funcione con ficheros normales. El flujo phar soporta todas
  las operaciones de lectura/escritura tanto en ficheros como en directorios.
 
 
  
 
 
  La clase Phar implementa funcionalidades
  avanzadas para acceder a los ficheros y crear archivos phar. La
  clase Phar es descrita en detalle aquí.
 
 
  
 
 
  Por otro lado, la verificación del contenido del archivo phar puede realizarse utilizando uno de
  los algoritmos de firma simétrica (MD5, SHA1, SHA256 y SHA512 si ext/hash está activada) y
  utilizando la firma asimétrica por clave pública/privada de OpenSSL.
  Para aprovechar la firma OpenSSL, debe generarse un par de claves pública/privada y
  utilizar la clave privada para firmar con Phar::setSignatureAlgorithm(). Además, la
  clave pública, extraída utilizando este código:
  
   <?php
$public = openssl_get_publickey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($public, $pkey);
?>
   
  debe ser guardada por separado del archivo phar que verifica. Si el archivo phar es guardado
  como 
/ruta/hacia/mon.phar, la clave pública debe ser guardada como
  
/ruta/hacia/mon.phar.pubkey, de lo contrario phar no será capaz de verificar
  la firma OpenSSL.
 
 
  La clase Phar también proporciona tres métodos estáticos, Phar::webPhar(),
  Phar::mungServer() y Phar::interceptFileFuncs() que son cruciales
  para empaquetar aplicaciones PHP destinadas a ser utilizadas en un sistema de ficheros clásico o como aplicación web.
  Phar::webPhar() implementa un controlador que enruta las llamadas HTTP al lugar correcto del archivo phar.
  Phar::mungServer() se utiliza para modificar los valores del array $_SERVER para
  indicar a las aplicaciones que utilicen estos valores. Phar::interceptFileFuncs() indica a Phar que intercepte las llamadas a
  fopen(), file_get_contents(), opendir(), y
  a todas las funciones basadas en stat (file_exists(), is_readable(), etc) y
  enruta todos los caminos relativos a los lugares correctos del archivo phar.
 
 
  Por ejemplo, empaquetar una versión de la famosa aplicación phpMyAdmin en un archivo phar requiere
  simplemente este script y, a partir de entonces, phpMyAdmin.phar.tar.php puede ser accedido como un fichero
  clásico desde su servidor web, después de haber modificado la pareja usuario/contraseña: