El futuro de PHP

986 views

Published on

El futuro de PHP: Mejoras de la vesión 5.3 en la POO

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
986
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

El futuro de PHP

  1. 1. El futuro de PHP: Mejoras de PHP 5.3 en el soporte de POO Latinoware 2008, Foz do Iguaçu, Brazil Matías Montes [email_address]
  2. 2. PHP 5.3 <ul><li>Incorpora los features del PHP 6 (excepto Unicode) </li></ul><ul><li>Más de 80 bug-fixes </li></ul><ul><li>Compatibilidad con PHP 5.2 </li></ul>
  3. 3. Namespaces <ul><li>Es un contexto en el que puede existir uno o más identificadores asociados </li></ul><ul><li>Evita colisión de nombres </li></ul><ul><li>Evita los prefijos exageradamente largos </li></ul><ul><li>Facilita la organización del código </li></ul>
  4. 4. Uso de los Namespaces <ul><li>Sólo se puede declarar uno por script </li></ul><ul><li>Debe ser la primera linea del script </li></ul><ul><li>Agrupan: </li></ul><ul><ul><li>Clases </li></ul></ul><ul><ul><li>Funciones </li></ul></ul><ul><ul><li>Constantes </li></ul></ul><ul><li>Se deben importar para poder ser usados </li></ul><ul><li>Puede importarse una clase interna a un NS (pero no funciones ni constantes) </li></ul><ul><li>No se pueden anidar </li></ul>
  5. 5. Ejemplo de declaración
  6. 6. Ejemplo de importación
  7. 7. Otras cuestiones de NS <ul><li>__NAMESPACE__ </li></ul><ul><li>Namespace 'vacío' :: </li></ul><ul><li>Cambia el comportamiento de algunas funciones: </li></ul><ul><ul><li>__autoload() </li></ul></ul><ul><ul><li>get_class() </li></ul></ul><ul><ul><li>get_parent_class() </li></ul></ul><ul><li>Posible cambio de simbolo: '' </li></ul>
  8. 8. Late Static Binding <ul><li>Las referencias estáticas se resuelven ahora en run-time </li></ul><ul><ul><li>La referencia 'self' y la constante '__CLASS__' mantienen su funcionamiento actual (compile-time) </li></ul></ul><ul><ul><li>'static::' se resuelve en run-time </li></ul></ul>
  9. 9. Ejemplo
  10. 10. Ejemplo 2
  11. 11. Algo más sobre LSB <ul><li>El comportamiento se torna impredecible con los métodos mágicos </li></ul><ul><li>Los llamados estáticos que combinan self:: parent:: y static:: permiten 'avanzar y retroceder' entre las clases que ejecutan un método </li></ul><ul><li>Nuevo método mágico __callStatic </li></ul>
  12. 12. Lambda Functions & Closures <ul><li>Lamda Functions </li></ul><ul><ul><li>Rápida definición de funciones 'descartables' </li></ul></ul><ul><ul><li>Ideal para definición de callbacks </li></ul></ul><ul><ul><li>Mejor performance que create_function() </li></ul></ul><ul><li>Closures </li></ul><ul><ul><li>Permiten a las Lambda Functions usar varibles del entorno en el que son definidas </li></ul></ul><ul><ul><li>De esta manera las lambda Functions tienen mayor reusabilidad </li></ul></ul><ul><ul><li>Se debe especificar las variables que se pasaran puesto que el entorno no siempre es accesible o predecible </li></ul></ul>
  13. 13. Ejemplo 1
  14. 14. Ejemplo 2
  15. 15. phar <ul><li>Agrupa aplicaciones enteras dentro de un sólo archivo Facilita la distribución de código </li></ul><ul><li>Accesible gracias a un propio Stream Wrapper </li></ul><ul><li>Una API extensa: PharData Class </li></ul><ul><ul><li>Permite crearlos, modificarlos, etc </li></ul></ul><ul><ul><li>Permite montar archivos Phar como unidades </li></ul></ul><ul><li>Funciona con el caché de OPCode </li></ul>
  16. 16. Circular Garbage Collector <ul><li>Desarrollado en el GSoC 2007 </li></ul><ul><li>Opcional </li></ul><ul><li>Resuelve referencias cíclicas </li></ul><ul><li>Ideal para scripts que corren por un largo período </li></ul><ul><li>Mayor control sobre su ejecución </li></ul>
  17. 17. Otros features de PHP 5.3 <ul><li>Operador ?: </li></ul><ul><li>Mejoras en performance: </li></ul><ul><ul><li>Md5() </li></ul></ul><ul><ul><li>require_once e include_once mejorados en el segundo llamado </li></ul></ul><ul><ul><li>Mejor manejo de memoria de las constantes </li></ul></ul><ul><li>Llamados estáticos dinámicos </li></ul><ul><li>Nuevo driver nativo de MySQL </li></ul><ul><li>Soporte para extensiones .ini (estilo .htaccess) </li></ul>
  18. 18. Otros features de PHP 5.3 <ul><li>Nuevas constantes: </li></ul><ul><ul><li>__DIR__ </li></ul></ul><ul><ul><li>E_DEPRECATED </li></ul></ul><ul><ul><li>Otras </li></ul></ul><ul><li>NOWDOC </li></ul><ul><li>break <LABEL> </li></ul><ul><li>Mejoras a la SPL (principalmente Iteradores) </li></ul><ul><li>Fileinfo nativa </li></ul>
  19. 19. El futuro de PHP: Mejoras de PHP 5.3 en el soporte de POO Latinoware 2008, Foz do Iguaçu, Brazil Matías Montes [email_address]

×