¿Que traerá de nuevo PHP 7?

Tanto los desarrolladores PHP más experimentados, como los que simplemente acaban de terminar sus estudios, estamos a espensas de la nueva versión de PHP. Y no es para menos, puesto que, de lo que hemos podido ir sabiendo gracias al blog oficial de PHP, las novedades son realmente suculentas. Llevamos ya mucho tiempo con PHP 5 y una nueva versión del lenguaje, como que apetece, ya no por las novedades, que por supuesto que sí, sino por la innovación de una tecnología nueva en futuros proyectos. Aún tenemos que esperar a noviembre de este mismo año para poder tenerlo en nuestras manos. Muchas betas se han lanzado, mucho tester quemado de reportar bugs, muchos ruegos de desarrolladores por mejorar muchas funciones... pero en menos de dos meses ya lo tendremos entre nosotros. Ya no queda nada para el lanzamiento de PHP 7.

Son muchas las mejoras que traerá este PHP 7 pero he querido resumir las más importantes en un solo artículo. Si nos pusiesemos a desgranar cada una de ellas, ten por seguro que daría como para un artículo por cada cambio que trae esta nueva versión de PHP. Y es que, como sabéis la expectación es alta debido a que PHP se ha convertido en uno de los lenguajes más usados de la programación web. Es normal, debido a su alta utilización, que el hype esté por las nubes... ¿Quieres saber qué diferencias tendrá PHP 7 con sus antecesores? Te lo explicamos todo.

¿Qué pasó con PHP6?

Si os gusta estar informados sobre el mundo de la programación web, como a mí, seguramente os habréis percatado de algo inusual. Se ha pasado de la versión 5 de PHP (siendo la 5.6 la última estable) a la nueva versión 7 que se lanzará en noviembre de este mismo año. Entonces, ¿qué ha pasado con la versión 6 de PHP? Muy sencillo, lo que pasó es que anteriormente ya hubo un intento de pasar PHP 5 a Unicode. A este intento lo llamaron PHP 6 y no fue del todo satisfactorio. Para que la gente que seguía este proyecto no se confundiese con la nueva versión totalmente renovada que iban a lanzar, se decidió que a la nueva se le llamara PHP 7. La PHP 6 original se desecharía por no ser apropiada para su utilización.

Se podrán declarar tipos de variables

No en la creación, pero si en la recepción de parámetros. Anteriormente, en una función, solo podíamos especificar si el parametro enviado era o una clase, o una interfaz, o un callable o bien, un array. Ahora tendremos nuevos tipos para controlar el envío de datos a una función, que son: int, bool, float y string. Es decir, ahora podremos validar si el parametro es un número entero, un decimal, una cadena o bien un booleano. Os pondré un ejemplo para que lo entendáis mejor:

function prueba(int $entero, string $cadena) 
{
    echo 'El cliente ' . $cadena .' debe ' . $entero . ' manzanas.';
}

Pero ya no solo con los parámetros, sino que también podemos definir el tipo de lo que se devuelve en una función. Es decir:

function prueba(int $entero, string $cadena) :string
{
    echo 'El cliente ' . $cadena .' debe ' . $entero . ' manzanas.';
}

En conclusión, ahora podremos validar los parametros y los valores retornables entre estos tipos: string, int, bool, float, array, callable, self, parent, closure, class o interfaz. Por lo que, poniendo en práctica el ejemplo anterior...

$resultado = prueba("2", "Pedro"); //Esto no funcionaría en PHP 7
$resultado = prueba(2, "Pedro"); //Esto si funcionaría en PHP 7

Excepciones por doquier

PHP nunca ha destacado por ser bueno en la gestión de errores, es más, me atrevería a decir que es hasta un poco caótico. Muchos métodos de los que declarábamos para atraparlos no funcionaban, los finally después de un catch y try, eran totalmente ignorados. Por suerte, PHP 7 trae consigo un mejor control de estos errores fatales gracias a PHPNG, el nuevo Zend Engine, que los convierte en excepciones. A partir de ahora puedes decir, sin miedo a equivocarte, que tu código está limpio de errores, pero no de excepciones. Para capturar estos errores camuflados de excepciones existe una jerarquía de excepciones, con la nueva excepción principal BaseExcepction.

BaseException (abstract)
 - EngineException
 - ParseException
 - Exception
     + ErrorException
     + RuntimeException
         ++ otras...
     + otras...

Veloz, muy veloz

Tenemos que darte una buena noticia, si tu desarrollo en otras versiones de PHP es compatible con la nueva versión 7 funcionará el doble de rápido. Esto es debido al nuevo motor de PHP 7 llamado PHPNG (PHP Next Generation) que posee una performance comparable incluso con HVVM.

El nuevo compilador JIT y las mejoras en el uso de memorias de Zend Engine han hecho que la velocidad del desarrollo aumente en 200%. Ahora podrás ahorrar dinero en el alojamiento contratado si el hardware empleado hacia que aumentase la velocidad. Con la nueva versión de PHP es posible ir más deprisa con menos recursos.

Operador Null Coalescence

En la noticia del lanzamiento de PHP 7.0.0 RC4 hablamos sobre la incursión del tan esperado operador, el cual podemos ver en múltiples lenguajes de programación: el operador null coalescence. Algunos lo conoceréis por ifsetor y funciona tal que así:

// Antes de PHP 7
$var = isset($var) ? $var : $this->var; 

// Ahora, en PHP 7
$var = $var ?? $this->var;

En fin, estas son las principales novedades de la nueva versión 7 de PHP. Creemos que son suficientes para dar un gran salto en esto del desarrollo web. Y tú, ¿que sigues echando de menos en PHP? ¿Qué incluirías en posteriores versiones del lenguaje? Indícanoslo en los comentarios.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR