Las características nuevas y mejoradas de PHP 7.2.0
Publicado: 2018-03-03La nueva versión de PHP 7.2.0 incluye muchas adiciones excelentes. Ofrece más características, nuevas mejoras y una mejor funcionalidad. Permite al usuario escribir mejor código y usar varias funciones de lenguaje interesantes como nunca antes. En esta publicación, veremos los aspectos más nuevos introducidos en la última versión de PHP.
La actualización ofrece muchas mejoras nuevas. Viene con muchas características que aseguran una mejor codificación. Las nuevas funciones de PHP 7.2.0 incluyen:
- Sugerencia para escribir objetos
- Conteo de varios objetos no contables
- Conversión de claves numéricas en moldes de matriz/objeto
- Extensión mcrypt eliminada
- Argon2 en hash de contraseña
- HashContext como objeto
- Mejores constantes TLS a varios valores cuerdos
- Nueva extensión de sodio
Como sabemos, los desarrolladores web generalmente aman u odian usar el lenguaje PHP. Cualquiera que realmente disfrute usando PHP definitivamente amará esta nueva solución de codificación.
Si es un desarrollador web al que le gusta trabajar con PHP, siga leyendo mientras discutimos las nuevas características más importantes de la actualización de PHP 7.2.0.
Mejoras principales en PHP 7.2.0
Estas son algunas de las mejoras principales en la última actualización de PHP.
La solución para el error de propiedades de rasgos
Hasta el lanzamiento de PHP 7.2.0, había un error de propiedad de rasgo sin corregir. En la última actualización, si un rasgo define una propiedad, una clase no puede definir una propiedad con el mismo nombre a menos que sea más compatible (mismo valor inicial y visibilidad). De lo contrario, emite un error fatal.
Entonces, a diferencia de PHP 7 y PHP 7.1, ahora podemos esperar recibir un error fatal. Este comportamiento se ha corregido en la actualización reciente de PHP y ahora funciona como se indica en la documentación de PHP. Ahora puedes hacer una comparación estricta. A medida que ejecuta el script en PHP 7.2, se le notificará un error fatal.
Declaración de tipo de retorno
La actualización reciente de PHP 7 agrega más soporte para declaraciones de tipos de devolución. Al igual que las declaraciones de tipo de argumento, este tipo de declaración también establece el tipo de valor que probablemente devolverá una función. Para la declaración de tipo de devolución, se ofrecen los mismos tipos que para las declaraciones de tipo de argumento.
En PHP 7.2.0, un usuario puede usar la declaración de tipo de devolución en términos de tipo de datos de objeto.
Además, la tipificación estricta también tiene un impacto en las declaraciones de tipo de devolución. Teniendo en cuenta el modo débil predeterminado, todos los valores devueltos se coaccionan al tipo exacto (en el caso de que sean diferentes y aún no sean de ese tipo). Sin embargo, en modo fuerte, todos los valores devueltos deben ser del tipo exacto/correcto. De lo contrario, se recibe un TypeError .
Sin embargo, un método secundario debe hacer coincidir la declaración de tipo de retorno con la del método principal cuando anula un método principal. Pero si un tipo de retorno no está definido por el método principal, entonces un método secundario puede definirlo.
Expresiones de retorno del generador
Esta característica de PHP se basa en una funcionalidad lanzada en PHP 5.5 llamada funcionalidad de generador. Permite utilizar una declaración de devolución en el generador y permitir que se devuelva la expresión final. Sin embargo, la devolución por referencia está restringida. El valor se puede obtener mediante el uso de un nuevo método Generador " getReturn()" que solo se usa cuando el generador termina de generar valores.
Sin embargo, la capacidad de devolver claramente un valor final usando un generador es definitivamente una habilidad útil para poseer. Esto se debe a que permite que un generador devuelva completamente un valor final, que puede ser manejado particularmente por un código de cliente que ejecuta el generador. En comparación, esto es mucho más simple que obligar a un código de cliente a verificar primero si el valor final se obtiene o no y luego manejar el valor en particular.
Opciones de sesión
Session_start() ahora reconoce muchas opciones que anulan las diversas directivas de configuración de sesión establecidas en php.ini.
Estas opciones también se han ampliado para facilitar session.lazy_write, que permanece activado de forma predeterminada y hace que PHP sobrescriba cualquier archivo de sesión solo con el cambio de datos de sesión y read_and_close . Esta es una opción que solo se puede pasar a session_start() para confirmar que los datos de la sesión deben leerse y luego la sesión debe cerrarse inmediatamente sin cambios.
Mejoras de seguridad en PHP 7.2.0
Aquí están las recientes mejoras de seguridad implementadas en PHP 7.2.0.
Algoritmo Argon 2 en hash de contraseña
Argon 2, el ganador de Password Hashing Competition en 2005, es un algoritmo de hash fuerte. Argon2 está a punto de ser reconocido como el estándar universal de Internet. Actualmente, el algoritmo se considera más rentable y seguro que Bcrypt, otro algoritmo de hashing. El Argon2 recién incorporado se puede utilizar a través de la función – password_hash().
Mientras que Bcrypt tiene en cuenta solo un factor de costo, el nuevo Argon2 tiene en cuenta los siguientes tres factores de costo:
- Un costo de tiempo : define el número de iteraciones del algoritmo hash
- Un costo de memoria : define los números de KiB que deben usarse durante el hashing.
- Un factor de paralelismo : establece el número de subprocesos paralelos que se consumirán durante el hashing.
Los factores de costo predeterminados están definidos por las tres nuevas constantes de la siguiente manera:
- CONTRASEÑA_ARGON2_DEFAULT_TIME_COST
- CONTRASEÑA_ARGON2_DEFAULT_MEMORY_COST
- CONTRASEÑA_ARGON2-DEFAULT-THREADS
Lib-sodio reemplaza a Mcyrpt
Otra mejora importante en PHP 7.2.0 es la eliminación de la biblioteca criptográfica Mcrypt convencional del núcleo de PHP y la adición de Libsodium.
Se consideró que Mcrypt era un abandonware y una restricción para el crecimiento del lenguaje. Es por eso que ha sido reemplazado por Libsodium en PHP 7.2.0. Libsodium es una biblioteca de criptografía avanzada que proporciona un cifrado auténtico junto con una criptografía de curva elíptica eficiente.
Libsodium se compone de algoritmos cuidadosamente seleccionados que son implementados por expertos en seguridad para evitar vulnerabilidades de canal lateral. En otras palabras, Libsodium es una biblioteca multiplataforma y multilenguaje para descifrar, cifrar, cifrar contraseñas, firma y más.
Características y funciones en desuso
Las siguientes son algunas de las funciones y características obsoletas de PHP 7.2.0 que se espera que se eliminen antes del lanzamiento de PHP 8.0.
Gmp_random() se toma como una característica dependiente de la plataforma y es probable que quede obsoleta. En su lugar, se utilizarán gmp_random_rage() y gmp_random_bits() .
(unset) the cast es otra expresión que comúnmente devuelve nulo y, por lo tanto, se considera inútil.
Each() se utiliza para iterar sobre un foreach() como una matriz, pero se prefiere foreach() debido a su mayor velocidad.
El spl_autoload_register en PHP 5.1 ha reemplazado a la función _autoload . Pero ahora es probable que ocurra una desaprobación cuando se encuentra la función durante la compilación.
mbstring .fucc_overload también se ha dejado en desuso.
La función de afirmación () confirma la afirmación dada y toma las medidas adecuadas si hay un resultado FALSO . El uso de assert() con argumentos de cadena quedará obsoleto porque provoca una vulnerabilidad RCE.
La variable $php_errormsg se construye en el ámbito local mientras se recibe un error no fatal. Pero ahora, con los lanzamientos de PHP 7.2.0, se usarán error_clear_last y error_get_last en su lugar.
Es probable que $errcontext quede obsoleto ya que esta funcionalidad está causando problemas para la optimización. Dado que $errcontext se usa para modificar todos los objetos y referencias en el ámbito actual, esta funcionalidad apenas se usa.
Create_function() tiene muchos problemas de seguridad. Además, también tiene problemas de uso de memoria y mal rendimiento.
¿Por qué un desarrollador de WordPress debería usar PHP 7.2.0?
Las actualizaciones recientes de PHP aportan funciones nuevas y medidas de seguridad mejoradas. Esto puede incluir factores como la criptografía moderna, adiciones a las funciones principales y una velocidad de carga más rápida para varios sitios.
Beneficios de usar PHP
PHP es un lenguaje altamente compatible que se puede usar con casi todos los estándares globales de bases de datos y servidores (es decir, PostgreSQL, MySQL, Sybase, Oracle, Microsoft SQL Server e Informix). Ofrece un rendimiento rápido respaldado por una comunidad de código abierto.
Se utiliza para una variedad de propósitos, como generar archivos y páginas dinámicas. PHP le permite administrar y almacenar información en una base de datos del sitio. Permite a los usuarios cifrar datos utilizando funciones de seguridad y restringe el acceso no autorizado a sitios web.
PHP es utilizado por muchos sitios web de renombre como Yahoo, Facebook y Wikipedia.
Aún más importante, la última actualización de PHP 7.2.0 ofrece importantes mejoras de seguridad, nuevas funciones interesantes y mejoras de rendimiento.
El rendimiento de PHP 7.2.0
Según los puntos de referencia de Phoenix, PHP 7.2.0 es un 13 % más rápido que 7.1 y casi un 20 % más rápido que 7.0. En comparación con PHP 2.6 (todavía utilizado por el 40 % de los usuarios de PHP), es casi un 25 % más rápido.
Hay muchas pruebas que respaldan estas estadísticas y hallazgos. El banco de pruebas oficial de PHP revela que PHP 7 es el doble de eficiente y el doble de rápido que 5.6. PHP 7 tiene la mitad de la latencia. Además, otros puntos de referencia como Kinsta sugieren que PHP 7 podría ser hasta tres veces más rápido que las versiones anteriores.
Como se discutió anteriormente, la razón principal de la mejora del rendimiento de PHP 7.2.0 es la inclusión de características avanzadas y el desuso de funciones antiguas. Eso es exactamente lo que hace que esta versión de PHP sea perfecta para los usuarios de WordPress. Sin embargo, los desarrolladores deben verificar el código y actualizar las funciones obsoletas para asegurarse de que todo sea compatible.
El soporte de seguridad de PHP 7.2.0
PHP 7.2.0 ya no ofrece soporte de seguridad. Sin embargo, el soporte crítico seguirá estando disponible hasta finales de 2018. La comunidad de PHP ya no ofrece soporte para problemas menores y errores. La buena noticia es que la última actualización de PHP 7.2.0 garantizará que las actualizaciones de seguridad avanzadas funcionen correctamente, y la comunidad de PHP apoyará continuamente el proyecto.
Libsodium es la característica más importante y mejorada que ha migrado del antiguo PHP a PHP 7.2.0. Afortunadamente, Libsodium es muy fácil de actualizar.
Si planea actualizar a PHP 7.2.0, asegúrese de que su código esté compuesto por pruebas unitarias y de integración. Dichas pruebas ayudarán a detectar cualquier problema relacionado con la aplicación antes de que aparezca como un error en un entorno real.
En una palabra
PHP 7.2.0 es definitivamente una actualización importante en comparación con versiones anteriores como PHP 5.6. A medida que actualiza el código de PHP 5.6 a PHP 7, es posible que encuentre algunas incompatibilidades, tanto en las bibliotecas de las que depende el código como en el propio código. Sin embargo, los beneficios de adoptar PHP 7.2 harán que sus esfuerzos valgan la pena.
Dado que PHP 7.2 es mucho más rápido que las versiones anteriores de PHP, esto permite al usuario ofrecer un servicio mejorado a los usuarios de su sitio web al implementar los códigos avanzados del lenguaje PHP.
Entonces, ¿estás listo para cambiar al nuevo PHP 7.2? Si aún no lo ha actualizado, entonces es un buen momento para comenzar su transición. Es hora de verificar los códigos y actualizar sus scripts.
¡Háganos saber cómo encontró las nuevas características y funciones mejoradas de PHP 7.2.0 en la sección de comentarios a continuación!