PHP 5.5

Antes de entrar en las nuevas características de 5.5, hagamos un repaso del estado de versiones. Hoy puede hablarse de la versión 5.3 como el nuevo estándar de PHP. Sin embargo la versión 5.4.7 introdujo cambios de performance importantes y el equipo de desarrollo de PHP nos sorprende nuevamente con cambios que hacen de PHP una plataforma competitiva.

Dentro de las nuevas características de esta versión vamos a encontrar:

  • Generadores
  • La sentencia finally dentro de la estructura Try
  • Una fuerte librería de hashing de contraseñas que hará que no tengamos que depender de librerías externas
  • Dereferencing de strings y de arrays.
  • Soporte para iteradores no escalares
  • Soporte de list() dentro de las sentencias foreach
  • Capacidad de poder utilizar empty() dentro de llamadas a funciones
  • Nueva extensión OPcache

Tal vez no sea particularmente útil ver esta lista de cambios dado que puede verse directamente desde la página de PHP. Uno de los cambios más importantes que podemos destacar es la inclusión de OPcahce.

Compilación de PHP

Años atrás, en versiones 2 y 3 de PHP, se sabía que le código de PHP podía compilarse aparte para favorecer la velocidad de ejecución, (algo que confieso, jamás tuve que hacer). Sin embargo cuando vimos la luz de la versión 4, nos encontramos con que ya no sabíamos si existía una compilación de PHP. Por aquellos tiempos tampoco se le daba una gran importancia a lo que pasaba debajo y si tan solo era código interpretado o compilado no parecía ser muy relevante. Hoy en día la optimización de código, procesos y todo lo que pueda favorecer la velocidad de ejecución es algo sumamente importante cuando se planifica un proyecto donde no sabemos cuál será la concurrencia que tenga el sitio que estamos creando. Sabemos que hoy en día cuando ejecutamos un script internamente se compila en memoria y se transforma en bloques ejecutables en memoria y optimizamos nuestro código para que sea lo más eficiente posible. Existen varios enfoques para establecer si un código es eficiente y no siempre se prioriza la velocidad de ejecución aunque es por supuesto un punto muy importante.

Como funciona OPcache

OPCache proviene de una extensión muy conocida ya como “Zend Optimizer”. Existen varios ajustes que pueden realizase desde PHP.ini que permitirán poder establecer una mejor ejecución en nuestras aplicaciones dependiendo de la configuración de hardware y la manera en que estructuramos nuestro código.
OPcache funciona como una memoria cache de los bloques de código ya compilados evitando tener que interpretar y recompilar en memoria bloques de código que tal vez no han cambiado y ya están en memoria por la misma ejecución de la aplicación de uno o más usuarios que puedan estar utilizando el sistema concurrentemente.  
En nuestras oficinas hemos realizado pruebas que han mostrado una mejoría de performance de hasta el 90% de performance sobre una misma página con varios usuarios accediendo simultáneamente. Por supuesto que la optimización dependerá mucho de cada escenario y no puede decirse que en líneas generales este será el incremento de performance que obtendremos, pero si significa un gran avance dentro de las posibilidades.