Los cambios de PHP 7.3

·

Si no falla nada, el 6 de diciembre de 2018 saldrá a la luz PHP 7.3, la versión que se ha venido trabajando durante 2018. Probablemente veremos a finales de 2019 la versión de PHP 7.4, y así sucesivamente durante algún tiempo, dejando únicamente dos versiones al vuelo.

Esta nueva versión de PHP trae algunas novedades, algunas más interesantes que otras. Comencemos.

Novedades

JSON_THROW_ON_ERROR

Se ha añadido el control de errores de JSON, JSON_THROW_ON_ERROR. Si trabajas con ficheros JSON, sobre todo si los creas, es muy interesante a la hora de leerlos y escribirlos.

is_countable()

Sin duda esta función va a hacer la vida más interesante a la hora de procesar array con datos.

Como su nombre indica, la función is_countable() lo que hace es decirte si los valores que incluye se pueden contar o no.

Hay que pensar que cuando decimos que se pueda contar no significa que los datos sean numéricos.

array_key_first() y array_key_last()

Con estas nuevas funciones podremos extraer de forma rápida el primer (array_key_first()) y último (array_key_last()) valor de las claves de un array.

setcookie(): SameSite [Lax, Strict]

Cuando hablamos de seguridad (incluso del GDPR), se habla mucho de quién genera las cookies. En principio «cualquiera» puede generar una cookie, pero ahora el sistema va a potenciar y evitar el uso de ataques CSRF.

Para ello vamos a poder añadir una opción a la función setcookie() con el valor SameSite y que tenga dos posibles opciones Lax o Strict.

De esta forma, una cookie que contenga el Lax permitirá ser leída desde otros dominios, mientras que las cookies que contengan Strict solo podrán ser leída desde el mismo dominio.

Mejoras

Heredoc y Nowdoc

Estos sistemas llevan tiempo permitiéndonos pintar textos y ahora se ha mejorado la forma de usar Heredoc y Nowdoc.

La coma al final de los valores de función

¿Cuántas veces no te ha pasado esto?

MiFuncion('lunes', 'Twitter', 'cosas de casa', 'aburrimiento',);
// PHP Parse error: syntax error, unexpected ')'

Pues ya no habrá que preocuparse por esos bucles en los que se añaden cosas dentro de las funciones… porque ¡ya no va a petar!

Que conste que pasará lo mismo con los array, que personalmente es donde más problemas, yo, tenía.

list()

Es bastante complejo de explicar en qué ha variado la función list(), pero básicamente hace referencia al uso o no de las variables dentro de la misma.

También ha corregido un bug del año 2000 que aún existía al pasar una lista por referencia.

Desfasados

image2wbmp()

Esta función queda completamente reemplazada por imagewbmp().

FILTER_FLAG_SCHEME_REQUIRED y FILTER_FLAG_HOST_REQUIRED

Estos dos subfiltros de FILTER_VALIDATE_URL quedan sin uso. Básicamente eran para forzar a que al revisar la URL se incluyese el scheme y el host.

Constantes case-insensitive

Aunque no sé quién usaba esto aún, pero definitivamente ha quedado en desuso la posibilidad de que las constantes fueran case-insensitive.

Cambios

De PCRE a PCRE2

Sin duda uno de los cambios más interesantes ya que afecta a las expresiones regulares. Aún no acaba de haber documentación clara, pero parece que se cambia al nuevo sistema, y que se incluirán dos constantes: PCRE_VERSION_MINOR y PCRE_VERSION_MAJOR.

compact()

Hasta ahora si se establecía en el compact() un string no era válido se saltaba, pero a partir de ahora aparecerá en un E_NOTICE.

Argon2

En PHP 7.2 se añadieron las extensiones Argon2 con el formato PASSWORD_ARGON2I. En esta versión se hacen algunas modificaciones y se añaden también las PASSWORD_ARGON2ID.

Y ahora que estás al día, recuerda mantener al día tu software, sobre todo si usas funciones o elementos que ya han sido desfasados (deprecated).

Comments

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *