introducción a los archivos phar en php

19
Archivos Phar http://blogs.prod.uci.cu/echo Otras de las novedades de PHP 5.3 Yaismel Miranda Pons

Upload: yaismel-miranda-pons

Post on 26-Jul-2015

100 views

Category:

Software


2 download

TRANSCRIPT

Archivos Phar

http://blogs.prod.uci.cu/echo

Otras de las novedades de PHP 5.3

Yaismel Miranda Pons

¿Sobre qué estaremos hablando?

Creación de un archivo Phar

1

Stub de un archivo Phar

2

Agregar ficheros al archivo Phar

3

Integrar el archivo Phar a tu aplicación

4

5

¿Qué son los archivos Phar?

¿Qué son los

archivos Phar?

JAR PHAR

java

similar

Empaqueta toda una aplicación en un solo archivo.

aplicación

¿Qué son los archivos Phar?

PHAR

PHP_Archive repositorio PEAR

inicialmente

agregado

2005

extremadamente

lento

C Extensión

2007

Evolución…

reescrito completamente

Para poder crear archivos Phar se debe desactivar

la opción phar.readonly en el php.ini

¿Qué necesito para comenzar?

Creación de un archivo Phar

- El primer parámetro del constructor es la ruta donde el archivo Phar será salvado.

- El segundo parámetro es asociado al iterador recursivo sobre el directorio

(normalmente es 0).

- El tercer parámetro es el alias por el cual el archivo Phar es referenciado.

Similar a las transacciones en BD relacionales

Creación de un archivo Phar

- Se puede cambiar el formato de almacenamiento de los archivos Phar a Zip o Tar.

- La principal ventaja de esto es la habilidad para inspeccionar el contenido del

archivo con cualquier herramienta que permita trabajar con ficheros Zip o Tar.

- La desventaja de esto resulta en la obligación de tener activa la extensión para

cargar los archivos, cosa que no sucede con el formato de almacenamiento nativo.

Stub del archivo Phar

El stub no es más que un pequeño fragmento código que corre

inicialmente cuando el archivo Phar es cargado, y siempre finaliza

con un token __HALT_COMPILER().

- El método Phar::mapPhar() se llama para inicializar el Phar cuando este es

ejecutado directamente o cuando es incluido en otro script.

- Para agregar o reemplazar el stub en un archivo Phar se puede utilizar el método

Phar::setStub().

Stub del archivo Phar

- Si solo se necesita pasar el nombre del archivo a incluir en el stub se

puede utilizar el método Phar::createDefaultStub().

Agregar ficheros al archivo Phar

El objeto Phar utiliza el objeto ArrayAccess de SPL1, lo que permite

acceder al contenido del archivo como un arreglo.

1. SPL: Colección de interfaces y clases que están pensadas para solucionar

problemas comunes.

- El nombre del archivo se pasa como key y el contenido como value.

key value

Agregar ficheros al archivo Phar

Si el fichero que se está almacenando en el archivo Phar es muy grande, se

puede comprimir usando gzip o bzip2. Esto se logra mediante los métodos

PharFileInfo::setCompressedGZ() o PharFileInfo::setCompressedBZIP2().

Agregar ficheros al archivo Phar

Para no tener que agregar fichero por fichero se puede utilizar el método

Phar::buildFromDirectory , el cual permite recorrer un directorio específico y

agregar los archivos que contenga.

- El primer parámetro es el directorio desde donde se cargarán los ficheros.

- El segundo parámetro es una expresión regular que permite filtrar los ficheros

que se agregan.

Integrar el archivo Phar a tu app

La forma más fácil de integrar código de un archivo Phar es incluyendo todo

el archivo, aunque también se puede acceder a un fichero dentro del Phar

cargado mediante la envoltura de flujo php://

- El primer include cargará el archivo miphar.phar, incluyendo el código

especificado en el stub.

- El segundo include usa la envoltura de flujo para abrir el archivo Phar y solo

incluir un fichero contenido en dicho archivo (file.php).

Consideraciones finales

Los archivos Phar proveen la habilidad de empaquetar código PHP, lo que

resulta muy útil para distribuir una aplicación o biblioteca en un solo archivo.

El archivo Phar puede ser cargado fácilmente desde un archivo PHP usando

las funciones require o include.

Estos archivos además pueden ser ejecutados directamente desde el

navegador o la línea de comandos.

Consideraciones finales

¿En qué proyectos o

aplicaciones ya se está

utilizando PHAR?

Consideraciones finales

Próximas conferencias!!!

C reación de

extensiones PHP

Archivos Phar

http://blogs.prod.uci.cu/echo

Otras de las novedades de PHP 5.3

Yaismel Miranda Pons