¿Desarrollador en PHP? Prepárate para la revolución de PHP 7

5 min lectura
¿Desarrollador en PHP? Prepárate  para la revolución de PHP 7
¿Desarrollador en PHP? Prepárate  para la revolución de PHP 7

BBVA API Market

El sector del desarrollo de software ha visto con agrado la irrupción de algunas novedades interesantes en forma de lenguajes de programación, no porque sean de lanzamiento reciente, sino por su importancia creciente en los proyectos: Python o Ruby son dos ejemplos de ello. Pero aunque eso es así, Java sigue siendo Java y PHP sigue siendo PHP. Y 2015 pasará por ser el año en el que PHP pegó un vuelco decisivo en su historia con la llegada de PHP 7.

Lógicamente PHP 7 trae novedades de todo tipo y la conclusión es evidente: la nueva versión es buena para los desarrolladores en esta sintaxis y para el desarrollo de proyectos digitales en general. Las mejoras son interesantes. Cambios no solo en el rendimiento, sino también en el propio uso de la sintaxis a la hora de programar. Esto resume las más importantes:

1. PHP 7 mejora mucho el rendimiento de los servidores

Existen varios estudios de la mejora del rendimiento ofrecida por la versión PHP 7. Tal vez uno de los más interesantes es esta presentación de Rasmus Lerdorf (@rasmus), creador de la primera versión del lenguaje de programación PHP, en la que se ven varios gráficos en los que PHP 7 duplica la velocidad de PHP 5.6. en casi todas las aplicaciones y además hace un uso menor de la memoria. Estos son dos ejemplos prácticos del rendimiento de la nueva sintaxis PHP 7 con los CMS Drupal 8 y con WordPress 4.1: 

Lo que se puede ver en las dos gráficas de Lerdorf es que PHP 7 gestiona más del doble de peticiones al servidor PHP en dos CMS habituales de creación y edición de páginas web como Drupal y WordPress. Esto quiere decir que al mismo número de peticiones tarda la mitad de tiempo en servirlas o que en el mismo tiempo de respuesta sirve el doble de páginas que PHP 5.6. En Drupal, PHP 7 responde a 185 peticiones por segundo mientras que PHP 5.6. hace 101. En WordPress son 545 peticiones en PHP 7 por 262 en PHP 5.6.

No son en las únicas plataformas donde PHP 7 muestra un mayor rendimiento que las versiones anteriores de esta sintaxis, en concreto que la versión 5.6.:

●      En phpBB, el sistema de foros de código abierto basado en PHP, la última versión de este lenguaje de programación ofrece un rendimiento de 912 peticiones por segundo. En la 5.6. es de 483 peticiones por segundo. El rendimiento es casi un 100% mayor.

●      En el sistema de edición Wardrobe, el rendimiento es similar: 912 peticiones por segundo en PHP 7 y 532 en PHP 5.6. Están todas las plataformas y aplicaciones estudiadas en la presentación de Lerdorf.

2. PHP 7 vs Facebook HHVM

Con el lanzamiento de PHP 7, HHVM (Hip Hop Virtual Machine), la máquina virtual que compila y ejecuta PHP desarrollado por Facebook, tiene rival.

En 2008, la red social de Mark Zuckerberg se tuvo que plantear un cambio de concepto por el enorme crecimiento de sus usuarios: creó una herramienta virtual que convierte el script de PHP a C++ para su compilación y ejecución en los servidores. Esto permitió albergar en el mismo servidor entre cinco y seis veces más de tráfico que antes. En 2010, Facebook volvió a idear la forma de mejorar el rendimiento de los servidores con el nacimiento de HHVM.

HHVM funciona con un motor JIT (Just-in-Time) para la transformación del lenguaje PHP en código en bytes y de ahí a código máquina, lo que permite su compilación y ejecución en unos tiempos y con unas exigencias mucho menores para el servidor. Multiplica enormemente la velocidad. PHP 7 nació para competir con HHVM y las pruebas son inmejorables.

3. Nuevos operadores en PHP 7: Spaceship (nave espacial) ⇔ y null

El operador en PHP siempre se utiliza para comparar dos expresiones. En función de los valores, la comparación devuelve un valor 0 si los dos elementos son iguales, un valor 1 si es mayor el primero y -1 si es mayor el segundo. Ese tipo de comparaciones (ya sean flexibles == o estrictas ===) en PHP se basan siempre en las tablas de comparación de tipos en PHP.

Estos son varios ejemplos de comparaciones de números enteros, de números decimales y de cadenas de caracteres con el nuevo operador nave espacial ⇔ de PHP 7 o también llamado operador de comparación combinada:

<?php

// Números enteros

echo 1 <=> 1; // 0

echo 1 <=> 2; // -1

echo 2 <=> 1; // 1

 

// Numeros decimales

echo 1.5 <=> 1.5; // 0

echo 1.5 <=> 2.5; // -1

echo 2.5 <=> 1.5; // 1

 

// Cadenas de caracteres

echo “a” <=> “a”; // 0

echo “a” <=> “b”; // -1

echo “b” <=> “a”; // 1

?>

El operador fusión de null es una atribución condicional que sirve al programador para comprobar de antemano un valor antes de usarlo. Un ejemplo práctico del uso de este operador, solo disponible a partir de PHP 7:

$a = $b ?? “default”;

4. Nuevo parser JSON

Con PHP 7 se reemplaza la extensión json por jsond. El json parser actual no dispone de una extensión json de código abierto. Eso provoca que algunas distribuciones Linux no tengan soporte json y queden excluidas. La solución era cambiar y así facilitar que hubiera nuevas mejoras sin ofrecer problemas.

5. Nuevas declaraciones en PHP 7

En PHP 7 se han añadido nuevos tipos de variables para definir funciones y métodos: int, float, bool y string. Es lo que en esta nueva versión de esta sintaxis recibe el nombre de declaraciones de tipo escalar. Estos nuevos tipos de declaraciones se comportan exactamente igual que los métodos ya existentes en PHP para la construcción habitual de funciones. Con este cambio se espera una programación en PHP más correcta y autodocumentada.

El otro tipo de declaraciones que son una novedad en PHP 7 son las declaraciones de tipo retorno. Estas declaraciones permitirán al programador tipar el retorno de una función con los valores que debe devolver, se interpondrá ese valor tras los argumentos y antes de la apertura de llaves, precedido siempre de dos puntos. Un ejemplo práctico de codificación:

<?php
function a() : bool
{
   return 1;
}
var_dump(a());

6. Las clases anónimas llegan a PHP 7

PHP 7 viene con capacidad para implementar clases anónimas. Se pueden usar en vez de las definiciones de clases completas para objetos desechables. La codificación de una clase anónima en la última versión de PHP sería así:

object(class@anonymous)#2 (0) {
}

Síguenos en @BBVAAPIMarket

También podría interesarte