PHP 7 - En Español

PHP 7


Este artículo en Inglés.

Es sabido que muchos programadores y empresas utilizan PHP para el desarrollo web; y, como programa ampliamente utilizado que es, PHP está en constante evolución. Si la versión estable anterior es la versión 5.6, entonces ¿por qué esta nueva versión es llamada PHP 7 en lugar de PHP 6? Bueno, la versión 6 no tuvo mucha aceptación y fue decidido por la comunidad que no se utilizara ese nombre, por lo que optaron por el nombre de esta versión principal de PHP 7.

La liberación se produjo el pasado mes de diciembre y en este artículo vamos a discutir lo que es nuevo y la actualización vale la pena.

Esta versión añade nuevas funcionalidades, así como cambios en la propia gestión interna de PHP, así como también correcciones de varios errores. Sin embargo, hay algunas características que ahora son obsoletas y que generan, por lo tanto, algunas incompatibilidades que tenemos que considerar antes de actualizar la versión en entornos de producción.

¿Por qué actualizar?

PHP es adaptable y fácil de implementar, que es la razón por la que muchas empresas y desarrolladores han elegido PHP respecto a otras tecnologías. Sin embargo, el rendimiento de PHP disminuye cuando el tráfico en sitios web aumenta. Por esa razón, Facebook, que se conoce por el uso de PHP, ha creado un intérprete para mejorar dicho rendimiento: la máquina virtual de HipHop (HHVM). El HHVM traduce el código PHP a código máquina, reduciendo considerablemente los tiempos necesarios para realizar operaciones.

El HHVM estimuló e inspiró a la comunidad PHP a hacer mejoras en el motor interno de PHP, y debido a esos cambios, PHP 7 es mucho más rápido que PHP 5.6. Además, el consumo de memoria se redujo notablemente. Con estas dos mejoras principales, podríamos tener más usuarios al mismo tiempo y sin la necesidad de tener que comprar un nuevo hardware.

¿Qué hay de nuevo?

Algunos de los cambios pertinentes y las nuevas funciones que se introdujeron en PHP 7 incluyen:

  • Los cambios de manejo de errores y excepciones: errores fatales ahora son excepciones.

  • El apoyo constante para los sistemas Windows de 64 bits.

  • El operador de la nave espacial <=>: este operador devuelve 0 si los operadores son iguales, 1 si el operador de la izquierda es mayor y -1 si el operador derecho es mayor. Se parece a una nave espacial, ¿verdad?

          echo 1 <=> 1; // salida 0
     echo 4 <=> 2; // salida 1
     echo 3 <=> 7; // salida -1
    
  • Declaración de tipo escalar: los tipos escalares son los que tienen valores individuales, con PHP 7 ahora podemos definir tipos escalares tales como bool, cadena, int y float. Hay dos maneras de hacer esto: la forma coercitiva y la forma estricta. En caso de que queramos usar este último, tenemos que utilizar para cada fichero, las nuevas directivas strict_types declare(). Estas deben estar en el comienzo del archivo PHP. Cuando el strict_types es 1, significa que el archivo está en el modo de verificación de tipos estricta. Por defecto, los archivos de PHP utilizan en modo de comprobación de tipos débiles, esto es lo mismo que tener strict_types = 0.

    // modo estricto

    declare(strict_types=1);

function sum(int ...$ints) {

return array_sum($ints);

}

print(sum(2, '1', 4.1));

?>

En el ejemplo anterior se producirá un error porque el argumento '1' no es un número entero. Por otro lado, si se escribe print(sum(2, 1, 4)), la salida será int (7).

  • Declaraciones de tipo de retorno: se utilizan para especificar el tipo del valor que será devuelto por una función, lo cual se realiza agregando dos puntos y escribiendo el tipo antes de las llaves.

function sum(int $a, int $b) : int {

  • Operador coalescente nulo: hay momentos en los que queremos comprobar si un valor y ese valor es nulo, devolver un valor predeterminado, el operador coalescente nos permite hacer eso.

// si el valor de $_GET['user'] no existe, retorna 'nobody'

$username = $_GET['user'] ?? 'nobody';

// Lo de arriba es equivalente a:

$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

?>

  • Clases anónimas: las clases anónimas nos permiten crear clases sin tener que nombrarlas, que son útiles cuando sólo utilizamos una clase una vez en el tiempo de ejecución y por lo tanto no existe necesidad de documentarlas.

  • Declaraciones de grupo de uso: funciones y constantes de clase pueden ser importadas desde el mismo espacio de nombres y agrupados, ahorrando tiempo al escribir.

  • Eliminación de funcionalidades y SAPIs obsoletos que ya no tenían soporte.

¿Cómo migrar?

Para migrar a la versión 7 es necesario comprobar si existen incompatibilidades en el código o en las bibliotecas que el código utiliza; deben, entonces, quitarse las dependencias de las bibliotecas y utilizar otras. También es beneficioso escribir pruebas y, de acuerdo con los resultados que se obtienen de ellas, determinar las partes del código que necesitan ser re-escritas.

Conclusión

Actualmente, la versión PHP 5 es la más ampliamente utilizada. Sin embargo, la versión 7 ha ido ganando más uso: recientemente W3Techs declaró que la versión 7 ha superado a la versión 4 en este sentido. La transición de los sitios con versiones anteriores a la versión 7 puede ser lenta, pero está definitivamente sucediendo. Sin lugar a dudas, la actualización de PHP 7 vale la pena.