1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-25 16:02:13 +01:00
Files
archived-doc-es/reference/phar/book.xml
Pedro Antonio Gil Rodríguez a2de3a3ec9 Actualización a la última versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337037 c90b9560-bf6c-de11-be94-00142212c4b1
2015-06-23 19:59:26 +00:00

193 lines
8.3 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 0217894fbce17470601932352a1a8358d40fdf33 Maintainer: seros 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="core" ?>
<title>Phar</title>
<!-- {{{ preface -->
<preface xml:id="intro.phar">
&reftitle.intro;
<para>
La extensión phar proporciona una manera de colocar aplicaciones PHP enteras dentro de un único fichero
llamado "phar" (PHP Archive) para una distribución e instalación sencillas.
Además de proporcionar este servicio, la extensión phar también provee de un método de abstracción
de formato de fichero para crear y manipular ficheros tar y zip a través de la
clase <classname>PharData</classname>, tal como
PDO proporciona una interfaz unificada para acceder a diferentes bases de datos. A diferencia de PDO,
la cual no puede realizar conversiones entre bases de datos diferentes, Phar también realiza conversiones entre los
formatos de ficheros tar, zip phar con una sencilla línea de código. Véase
<function>Phar::convertToExecutable</function> para un ejemplo.
</para>
<para>
¿Qué es phar? Lo archivos Phar están mejor caracterizados como una forma conveniente de agrupar
varios ficheros en un único fichero. Como tal, un archvo phar proporciona una forma para
distribuir una aplicación PHP completa en un único fichero y ejecutarla desde ese mismo fichero
sin necesidad de extraerlo en el disco. Además, los archivos phar pueden ser
ejecutados por PHP fácilmente al igual que cualquier otro fichero, tanto desde la línea de comandos como desde
un servidor web. Phar a web server. Phar es como una memoria USB para aplicaciones PHP.
</para>
<para>
Phar implementa esta funcionalidad a través de una <link linkend="book.stream">Envoltura
de Flujo</link>. Normalmente, para utilizar un fichero externo dentro de un script de PHP, se
debería usar <function>include</function>
</para>
<para>
<example>
<title>Utilizar un fichero externo</title>
<programlisting role="php">
<![CDATA[
<?php
include '/ruta/al/fichero/externo.php';
?>
]]>
</programlisting>
</example>
</para>
<para>
Puede considerarse que PHP traduce realemte
<literal>/ruta/al/fichero/externo.php</literal> a una
envoltura de flujo como <literal>file:///ruta/al/fichero/externo.php</literal>, y bajo
la cubierta de hecho hace uso de funciones de flujo de envolturas de flujo de ficheros para
acceder a todos los ficheros locales.
</para>
<para>
Para utilizar un fichero llamado <literal>fichero.php</literal> contenido en un archivo phar
<literal>/ruta/a/miphar.phar</literal>,
la sintaxis es muy similar a la sintaxis <literal>file://</literal> de arriba.
</para>
<para>
<example>
<title>Utilizar un fichero dentro de un archivo phar</title>
<programlisting role="php">
<![CDATA[
<?php
include 'phar:///ruta/a/miphar.phar/fichero.php';
?>
]]>
</programlisting>
</example>
</para>
<para>
De hecho, se puede tratar un archivo phar exactamente como si fuera un disco externo, usando
cualquiera de las funciones relacionadas con <function>fopen</function>, <function>opendir</function> y
funciones relacionadas con <function>mkdir</function> para leer, cambiar, o crear nuevos ficheros
y directorios dentro del archivo phar. Esto permite que aplicaciones de PHP completas
sean distribuidas en un único fichero y ejecutarlas directamente desde ese fichero.
</para>
<para>
El uso más común de un archivo phar es distribuir una aplicación completa
en un único fichero. Por ejemplo, el Instalador de PEAR que se incluye con las versiones
de PHP está distribuido como un archivo phar. Para usar un archivo phar distribuido
de esta forma, se puede ejecutar en línea de comandos o mediante un servidor web.
</para>
<para>
Los archivos phar pueden ser distribuidos como archivos <literal>tar</literal>,
<literal>zip</literal>, o como formato de fichero <literal>phar</literal> personalizado
diseñado específicamente por la extensión phar. Cada formato de fichero tiene sus ventajas
y desventajas. Los formatos de fichero tar y zip se pueden leer o extraer mediante cualquier
herramienta de terceros que pueda leer el formato, pero necesia la extensión phar para ejecutarlo
con PHP. El formato de fichero phar es personalizado y único para la extensión phar,
y sólo puede ser creado por la extensión phar o el paquete de PEAR
<link xlink:href="&url.pear.package;PHP_Archive">PHP_Archive</link>, pero tiene la
ventaja de que las apliaciones creadas en este formato se ejecutarán incluso si la extensión
phar no está habilitada.
</para>
<para>
En otras palabra, incluso con la extensión phar deshabilitada, se puede ejecutar o incluir
un archivo basado en phar. El acceso a ficheros dentro de un archivo phar solamente es
posible con la extesnión phar a menos que el archivo phar fuese creado por PHP_Archive.
</para>
<para>
La extensión phar también es capaz de convertir un archivo phar desde los formatos de fichero tar a zip o
a phar en un único comando:
</para>
<para>
<example>
<title>Convertir un archivo phar, desde phar al formato de fichero tar</title>
<programlisting role="php">
<![CDATA[
<?php
$phar = new Phar('miphar.phar');
$pgz = $phar->convertToExecutable(Phar::TAR, Phar::GZ); // crea miphar.phar.tar.gz
?>
]]>
</programlisting>
</example>
</para>
<para>
Phar puede comprimir ficheros individuales o un archivo entero
usando la compresión <link linkend="book.zlib">gzip</link> o
la <link linkend="book.bzip2">bzip2</link>, y puede verificar la integridad
del archivo automáticamente a través del uso de las signaturas
MD5, SHA-1, SHA-256 o SHA-512.
</para>
<para>
Por último, la extensión Phar se preocupa de la seguridad, y deshabilita el acceso a la escritura
de archivos phar ejecutables de manera predeterminada, y requiere la deshabilitación a nivel de sistema del ajuste
<literal>phar.readonly</literal> de php.ini para crear o
modificar archivos phar. Los archivos tar y zip normales sin una rutina de interoperabilidad ejecutable
siempre pueden ser creador o modificados utilizando la clase <classname>PharData</classname>.
</para>
<para>
Si está creando aplicaciones para su distribución, le interesará leer
<link linkend="phar.creating">Cómo crear Archivos Phar</link>. Si desea
más información de las diferencias entre los tres formatos de ficheros que soporta phar,
debería leer <link linkend="phar.fileformat">Phar, Tar y Zip</link>.
</para>
<para>
Si usa aplicaciones phar, existen consejos útiles en
<link linkend="phar.using">Cómo utilizar archivos Phar</link>
</para>
<para>
La palabra <literal>phar</literal> es una composición de <literal>PHP</literal> y
<literal>Archive</literal> y está basada indirectamente
en el familiar <literal>jar</literal> (Java Archive) para los desarrolladores Java.
</para>
<para>
La implementación de archivos Phar está basada en el paquete de PEAR
<link xlink:href="&url.pear.package;PHP_Archive">PHP_Archive</link>, y
los detalles de implementación son similares, aunque la extensión Phar
es mucho más potente. Además, la extensión Phar permite a la mayoría de las aplicaciones
de PHP ejecutarse sin modificaciones, mientras que los archivos phar basados en PHP_Archive
a menudo requieren una extensa modificiación para que funcionen.
</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
-->