1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-26 08:22:08 +01:00
Files
archived-doc-es/reference/phar/book.xml
2025-07-03 21:51:59 +02:00

189 lines
8.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 562a216c8108885a492cbfb66e2d5734847fa19d Maintainer: PhilDaiguille Status: ready -->
<!-- Reviewed: no -->
<book xml:id="book.phar" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<?phpdoc extension-membership="bundled" ?>
<title>Phar</title>
<!-- {{{ preface -->
<preface xml:id="intro.phar">
&reftitle.intro;
<para>
La extensión phar proporciona un medio para empaquetar una aplicación PHP completa en un único archivo
llamado "phar" (PHP Archive) para facilitar la instalación y configuración.
Además de este servicio, la extensión también proporciona una clase de abstracción de formato de archivo
para crear y manipular archivos tar y zip a través de la clase
<classname>PharData</classname>, de manera similar a como
PDO proporciona una interfaz unificada para acceder a diferentes bases de datos. Sin embargo, a diferencia de PDO,
que no puede transferir datos entre bases de datos, Phar tiene la capacidad de convertir archivos tar,
zip y phar con una sola línea de código. Consulte
<function>Phar::convertToExecutable</function> para obtener un ejemplo.
</para>
<para>
¿Qué es phar? Las archivos phar son en realidad un medio práctico para agrupar
varios archivos en uno solo. Así, un archivo phar permite distribuir una
aplicación PHP completa en un único archivo y ejecutarla desde este archivo
sin necesidad de extraerlo en el disco. Además, los archivos phar pueden ser ejecutados
por PHP tan fácilmente como cualquier otro archivo, tanto desde la línea de comandos como a través
de un servidor web. Phar es una especie de memoria USB para aplicaciones PHP.
</para>
<para>
Phar implementa esta funcionalidad mediante <link linkend="book.stream">un
flujo</link>. Normalmente, para utilizar un archivo externo desde un script PHP, se
debe utilizar la función <function>include</function>:
</para>
<para>
<example>
<title>Utilizar un archivo externo</title>
<programlisting role="php">
<![CDATA[
<?php
include '/ruta/al/archivo/externo.php';
?>
]]>
</programlisting>
</example>
</para>
<para>
Puede considerarse que PHP convierte en realidad
<literal>/ruta/al/archivo/externo.php</literal> en un
flujo <literal>file:///ruta/al/archivo/externo.php</literal>, y que
utiliza de forma oculta las funciones de flujo de archivos planos para acceder
a archivos locales.
</para>
<para>
Para utilizar un archivo llamado <literal>archivo.php</literal> contenido en un archivo phar
<literal>/ruta/al/miphar.phar</literal>,
la sintaxis es casi similar a la sintaxis <literal>file://</literal> anterior.
</para>
<para>
<example>
<title>Utilizar un archivo contenido en un archivo phar</title>
<programlisting role="php">
<![CDATA[
<?php
include 'phar:///ruta/al/miphar.phar/archivo.php';
?>
]]>
</programlisting>
</example>
</para>
<para>
En realidad, un archivo phar puede tratarse como si fuera un disco externo, utilizando
cualquiera de las funciones relacionadas con <function>fopen</function>, <function>opendir</function> y
<function>mkdir</function> para leer, modificar o crear nuevos archivos o directorios dentro del
archivo phar. Esto permite que aplicaciones PHP completas sean distribuidas en un único archivo
y ejecutadas desde él.
</para>
<para>
El uso más común de un archivo phar es distribuir una aplicación completa
en un único archivo. Por ejemplo, el instalador PEAR que se incluye con las versiones de PHP
se distribuye mediante un archivo phar. Para utilizar el archivo phar distribuido de esta manera, este
puede ser ejecutado mediante la línea de comandos o a través de un navegador web.
</para>
<para>
Los archivos phar pueden distribuirse en formato <literal>tar</literal>,
<literal>zip</literal> o en el formato <literal>phar</literal> especialmente diseñado
para la extensión phar. Cada formato de archivo tiene sus ventajas e inconvenientes. Los archivos
zip y tar pueden ser extraídos por cualquier herramienta de terceros que pueda leer el formato, pero
requieren la extensión phar para ser ejecutados por PHP. El formato de archivo phar es único y dedicado
a la extensión phar y solo puede ser creado por esta o por el paquete PEAR
<link xlink:href="&url.pear.package;PHP_Archive">PHP_Archive</link>, pero tiene la ventaja de no
requerir la instalación de la extensión phar para que la aplicación empaquetada pueda ser ejecutada.
</para>
<para>
En otras palabras, incluso con la extensión phar desactivada, es posible ejecutar o incluir
un archivo basado en phar. Acceder a archivos individuales dentro de un archivo phar solo es
posible con la extensión phar a menos que el archivo phar haya sido creado por PHP_Archive.
</para>
<para>
La extensión phar también es capaz de convertir un archivo phar desde un tar hacia un archivo zip
o phar con un solo comando:
</para>
<para>
<example>
<title>Convertir un archivo phar al formato tar</title>
<programlisting role="php">
<![CDATA[
<?php
$phar = new Phar('miphar.phar');
$pgz = $phar->convertToExecutable(Phar::TAR, Phar::GZ); // produce miphar.phar.tar.gz
?>
]]>
</programlisting>
</example>
</para>
<para>
Phar puede comprimir archivos individuales o un archivo completo
utilizando la compresión <link linkend="book.zlib">gzip</link> o
<link linkend="book.bzip2">bzip2</link>, y puede verificar la integridad del archivo
automáticamente utilizando funciones de firma MD5, SHA-1, SHA-256 o SHA-512.
</para>
<para>
Finalmente, la extensión phar está orientada a la seguridad, desactiva por defecto los accesos
de escritura en archivos phar ejecutables y requiere la desactivación a nivel de sistema
del parámetro <literal>phar.readonly</literal> del php.ini para crear o modificar archivos phar.
Los archivos tar y zip sin el marcador ejecutable pueden ser siempre creados o modificados
utilizando la clase <classname>PharData</classname>.
</para>
<para>
Si se crean aplicaciones con el propósito de distribuirlas, se debe leer
<link linkend="phar.creating">Cómo crear archivos Phar</link>. Si se desea
más información sobre las diferencias entre los formatos de archivo que phar soporta,
se debe leer <link linkend="phar.fileformat">Phar, Tar y Zip</link>.
</para>
<para>
Si se utilizan aplicaciones phar, hay trucos muy útiles en
<link linkend="phar.using">Cómo utilizar archivos Phar</link>.
</para>
<para>
La palabra <literal>phar</literal> es la contracción de <literal>PHP</literal> y de
<literal>Archive</literal> y está fuertemente inspirada
en la palabra <literal>jar</literal> (Java Archive) familiar a los desarrolladores Java.
</para>
<para>
La implementación de los archivos Phar se basa en el paquete PEAR
<link xlink:href="&url.pear.package;PHP_Archive">PHP_Archive</link>, y
los detalles de implementación son los mismos, aunque la extensión Phar
es más potente. Además, esta permite que la mayoría de las aplicaciones
PHP sean ejecutadas sin modificación mientras que los archivos basados en PHP_Archive
requieren a menudo muchas modificaciones para funcionar.
</para>
</preface>
<!-- }}} -->
&reference.phar.setup;
&reference.phar.constants;
&reference.phar.using;
&reference.phar.creating;
&reference.phar.fileformat;
&reference.phar.Phar;
&reference.phar.PharData;
&reference.phar.PharFileInfo;
&reference.phar.PharException;
</book>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->