PHP7 ¿Qué podemos esperar? Es época de cambio

¿PHP7, ya?

Obviamente con tono irónico. Hace más de 10 años que salió la versión 5.0 de PHP y muchas cosas han sucedido por el camino. No sería justo decir que PHP 5.6, que es la rama actual, no haya mejorado respecto a la versión 5.0 que salió por allá a mediados del año 2004. Pero en lo que sí estaremos todos de acuerdo es que hacía falta un empujón para no quedarse atrás y, ese empujón es PHP7.

Después de la polémica que hubo con el desarrollo de PHP6 y el intento para implementar soporte Unicode, se vio que no llegaba a buen puerto y la organización decidió tomar la decisión de abandonar el proyecto.

PHP7 nace a partir de una rama experimental llamada phpng (PHP Next Generation) cuyo objetivo principal era incrementar el rendimiento modificando Zend Engine, pero manteniendo la máxima compatibilidad posible.

Al refactorizar el motor Zend, el resultado ha sido (según PHP) un aumento de aproximadamente un 100% del rendimiento, lo que viene a ser el doble. Pero esto no acaba aquí, además se abre la puerta a seguir mejorando con el paso de las versiones menores.

Para el lanzamiento de PHP7 han querido, además, hacer algunas modificaciones a nivel de uso. Modificaciones que nos llevan hacia un lenguaje más robusto, más orientado a objetos, más… Java. Estos son algunos de los cambios más importantes que veremos:

¿Qué podemos esperar?

La lista sería eterna, así que vamos a hacer un poco de resumen de las cosas más importantes que vamos a ver en esta nueva versión de PHP.

Rendimiento

El principal arma de PHP7 es el incremento del rendimiento, Actualmente PHP7 tiene un rendimiento muy similar al que se obtiene mediante HHVM que recordemos que introduce un Just In Time (JIT) Compiler que básicamente compila el código a código máquina para obtener un mayor rendimiento. PHP7 en cambio no lo es, es una optimización del lenguaje que ya conocemos. Así que será interesante ver qué ocurre cuando a esta mejora de rendimiento se le aplique un JIT. Pero eso vamos a dejarlo para un futuro más lejano.

Excepciones

¿Alguna vez has intentado tratar con excepciones en PHP? Es bastante engorroso, además de la facilidad que tiene para lanzarte un error FATAL y quedarse ahí. Con PHP7 se ha incluido EngineException.

Ahora cuando ocurre una excepción fatal o catchable se lanza una excepción que puede ser capturada y tratada de la forma en que nos apetezca, sin matar la ejecución y dándonos muchísimo más control (si así lo programamos claro) sobre el flujo de la ejecución del programa. Cabe mencionar que EngineException no recoge las excepciones que actualmente van vinculadas a Exception; esto se ha hecho para mantener la retrocompatibilidad.

Tipado

PHP siempre ha sido un lenguaje débilmente tipado y para trabajar con variables no debes especificar un tipo. Esto seguirá siendo así, pero con algunos añadidos.

Se ha añadido soporte para varios tipos de escalares, en la página oficial se puede leer más información acerca del RFC que se realizó. Ahora bien, otra de las novedades es que si queremos activar el modo estricto ahora podemos hacerlo definiendo declare(strict_types=1); al inicio del fichero.

Operador de coalescencia

Mágico. El operador de coalescencia es un operador que tarde o temprano tenía que llegar. ¿Cuántas veces hemos usado isset() o hemos hecho comprobaciones a NULL para verificar si hay datos en X variable? ¿Y en caso de que no lo haya le hemos dado algún valor determinado? Al menos yo, cientos de veces!

Con el operador de coalescencia la sintaxis para realizar todo esto se reduce a un simple ??. Es una pequeña mejora que nos permitirá realizar un código mucho más limpio y más legible!

Antes, para comprobar el valor que recibíamos de un formulario por $_GET lo podíamos realizar así:

[php]
$usuario = isset($_GET[‘usuario’]) ? $_GET[‘usuario’] : ‘nadie’;
[/php]

Mientras que ahora lo podemos simplificar tal que así:

[php]
$usuario = $_GET[‘usuario’] ?? ‘nadie’;
[/php]

Operador de comparación combinado

El operador de comparación combinado (también conocido como Operador Spaceship) sirve para comprobar si un valor X es menor que, igual que o mayor que Y y retornar un resultado: -1 si es menor, 0 si es igual o 1 en caso de ser mayor que. Así de simple y de un plumazo nos quitamos hacer operaciones más complejas o funciones específicas para realizar esta comparación múltiples veces. Ahora podremos realizar simplemente:

[php]

$resultado = $a <=> $b;

[/php]

¿Y todo esto para cuándo?

Además de todas estas novedades, también hay más, podemos leer toda la información que envuelve el lanzamiento de PHP7 en su página oficial. Pero tendremos que esperar hasta Noviembre de este año 2015 para poder poner en practica todas estas novedades, que es cuando el equipo de PHP tiene previsto el lanzamiento de la versión final.

Pero no te preocupes! Por aquí iremos mostrando algunas novedades y realizaremos pruebas, a ver si es tan rápido como se nos ha prometido!

Tweet about this on TwitterShare on FacebookShare on Google+Share on LinkedIn