SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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?
JARPHAR
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ónde interfaces y clases que estánpensadaspara solucionar
problemascomunes.
- 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!!!
Creación de
extensiones PHP
Archivos Phar
http://blogs.prod.uci.cu/echo
Otras de las novedades de PHP 5.3
Yaismel Miranda Pons

Más contenido relacionado

La actualidad más candente (19)

GOLPHER
GOLPHERGOLPHER
GOLPHER
 
ejercicios1so
ejercicios1soejercicios1so
ejercicios1so
 
Unidad 3 ficheros
Unidad 3 ficherosUnidad 3 ficheros
Unidad 3 ficheros
 
Bash Tips Tricks Campus
Bash Tips Tricks CampusBash Tips Tricks Campus
Bash Tips Tricks Campus
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
desarrolo de sitios web php y mysql
desarrolo de sitios web php y mysqldesarrolo de sitios web php y mysql
desarrolo de sitios web php y mysql
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
Comandos de ubuntu
Comandos de ubuntuComandos de ubuntu
Comandos de ubuntu
 
Comandos ubuntu
Comandos ubuntuComandos ubuntu
Comandos ubuntu
 
Instalacion Básica De Drupal 6
Instalacion Básica De Drupal 6Instalacion Básica De Drupal 6
Instalacion Básica De Drupal 6
 
77 Php. AñAdir Nuevas Fuentes Para Pdf
77 Php. AñAdir Nuevas Fuentes Para Pdf77 Php. AñAdir Nuevas Fuentes Para Pdf
77 Php. AñAdir Nuevas Fuentes Para Pdf
 
Comandos ubuntu
Comandos ubuntuComandos ubuntu
Comandos ubuntu
 
Ejercicios Basicos Sobre Linux
Ejercicios Basicos Sobre LinuxEjercicios Basicos Sobre Linux
Ejercicios Basicos Sobre Linux
 
Leccion03
Leccion03Leccion03
Leccion03
 
Tecnologías web + Python
Tecnologías web + PythonTecnologías web + Python
Tecnologías web + Python
 
Analizador Léxico en C++
Analizador Léxico en C++Analizador Léxico en C++
Analizador Léxico en C++
 
57 Php. Funciones De Compresion
57 Php. Funciones De Compresion57 Php. Funciones De Compresion
57 Php. Funciones De Compresion
 
Semana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipesSemana 9 entradas salidas estandar y pipes
Semana 9 entradas salidas estandar y pipes
 
Windows avanzado robocopy
Windows avanzado robocopyWindows avanzado robocopy
Windows avanzado robocopy
 

Similar a Introducción a los Archivos Phar en PHP

Similar a Introducción a los Archivos Phar en PHP (20)

Php slideshare
Php slidesharePhp slideshare
Php slideshare
 
93 Php. Instalacion De Php5 Sobre Apache 1.3.35
93 Php. Instalacion De Php5 Sobre Apache 1.3.3593 Php. Instalacion De Php5 Sobre Apache 1.3.35
93 Php. Instalacion De Php5 Sobre Apache 1.3.35
 
Tema 10 www.fresymetal.com
Tema 10 www.fresymetal.comTema 10 www.fresymetal.com
Tema 10 www.fresymetal.com
 
Instalación de apache en linux
Instalación de apache en linuxInstalación de apache en linux
Instalación de apache en linux
 
As3 unidad 14 crear una aplicación air con flash y action script
As3 unidad 14 crear una aplicación air con flash y action scriptAs3 unidad 14 crear una aplicación air con flash y action script
As3 unidad 14 crear una aplicación air con flash y action script
 
Manejo de archivosss
Manejo de archivosssManejo de archivosss
Manejo de archivosss
 
(Desarrollo web).manual.php.5
(Desarrollo web).manual.php.5(Desarrollo web).manual.php.5
(Desarrollo web).manual.php.5
 
LAM with python
LAM with python LAM with python
LAM with python
 
Manejo de archivos
Manejo de archivosManejo de archivos
Manejo de archivos
 
(Desarrollo web).manual.php.5
(Desarrollo web).manual.php.5(Desarrollo web).manual.php.5
(Desarrollo web).manual.php.5
 
Manejo de archivos en c++
Manejo de archivos en c++Manejo de archivos en c++
Manejo de archivos en c++
 
Manejo dearchivosc
Manejo dearchivoscManejo dearchivosc
Manejo dearchivosc
 
Archivos c
Archivos cArchivos c
Archivos c
 
Archivos c
Archivos cArchivos c
Archivos c
 
Archivos de datos en C
Archivos de datos en CArchivos de datos en C
Archivos de datos en C
 
Programación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivosProgramación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivos
 
Grupo nro4ficheros
Grupo nro4ficherosGrupo nro4ficheros
Grupo nro4ficheros
 
05 Php. Configuracion De Php
05 Php. Configuracion De Php05 Php. Configuracion De Php
05 Php. Configuracion De Php
 
Install apps in ubuntu
Install apps in ubuntuInstall apps in ubuntu
Install apps in ubuntu
 
Tema1[Php]
Tema1[Php]Tema1[Php]
Tema1[Php]
 

Introducción a los Archivos Phar en PHP

  • 1. Archivos Phar http://blogs.prod.uci.cu/echo Otras de las novedades de PHP 5.3 Yaismel Miranda Pons
  • 2. ¿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?
  • 4. JARPHAR java similar Empaqueta toda una aplicación en un solo archivo. aplicación ¿Qué son los archivos Phar?
  • 6. Para poder crear archivos Phar se debe desactivar la opción phar.readonly en el php.ini ¿Qué necesito para comenzar?
  • 7. 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
  • 8. 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.
  • 9. 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().
  • 10. 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().
  • 11. 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ónde interfaces y clases que estánpensadaspara solucionar problemascomunes. - El nombre del archivo se pasa como key y el contenido como value. key value
  • 12. 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().
  • 13. 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.
  • 14. 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).
  • 15. 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.
  • 16. Consideraciones finales ¿En qué proyectos o aplicaciones ya se está utilizando PHAR?
  • 19. Archivos Phar http://blogs.prod.uci.cu/echo Otras de las novedades de PHP 5.3 Yaismel Miranda Pons