¿Qué novedades trae PHP 8.1?

PHP 8.

1 se lanzó en noviembre de 2021, ya que la última versión menor del idioma de PHP. Introduce varias características de nuevos idiomas además de algunas correcciones de errores menores y mejoras de rendimiento. Aunque hay algunos cambios de ruptura a conocer, la mayoría de las actualizaciones de PHP 8.

0 deben ser sencillas. La actualización PHP de este año presenta una serie de nuevas características dirigidas a aumentar la productividad del desarrollador.

Lo que podrás usar siguiendo tu actualización. Finalmente, los tipos de Enum se incluyen en el idioma PHP.

Le permiten especificar que debe caer un valor dentro de un conjunto de constantes predefinidos. Cuando se usan como parámetros de método y valores de devolución, los enumeres proporcionan una validación incorporada en comparación con las constantes regulares.

Adiciones recientes

Además, pueden tener valores y métodos de apoyo que agreguen un comportamiento adicional. La nueva palabra clave readonly indica que una propiedad de una clase es inmutable.

Las propiedades readonal se pueden modificar solo una vez. Después de la inicialización, intentar modificar su valor resultará en un error. Esto agiliza el proceso de creación de objetos simples de valor inmutable.

Anteriormente, necesitaba extender una clase con métodos repetitivos para exponer los valores de la propiedad sin permitir la modificación. Ahora puede hacer que las propiedades sean accesibles al público sin temor a las mutaciones no intencionales.

El sistema de tipo en PHP ahora reconoce las intersecciones. Estos permiten la especificación del requisito de un valor para implementar múltiples interfaces. Esto es ventajoso en situaciones donde el código debe invocar los métodos de instancia definidos por dos interfaces distintas.

Constantes finales de clase

Anteriormente, tuvo que crear una nueva interfaz que extendió ambas interfaces deseadas. Esto no siempre fue factible en los casos en que la clase objetivo no podía modificarse para implementar la nueva interfaz. Las intersecciones se definen agregando un carácter de ampers y de dos o más tipos.

Aumentan la flexibilidad del sistema de tipo siguiendo la introducción de tipos de sindicatos en PHP 8.

0. Una advertencia es que en este momento, no puede combinar la intersección y los tipos de uniones, contables y ramificables |. En esta versión, CustomType no es compatible. Las fibras son un mecanismo para la ejecución concurrente para ser posible.

Simplifican la implementación de bloques de código reanudables que se pueden suspender en cualquier punto de la pila. La API de las fibras es bastante baja.

Cambios que son incompatibles con el pasado

No se espera que los desarrolladores de usuarios finales interactúen con él de forma regular. En lugar de eso, las fibras se integrarán en las bibliotecas que implementan API de Async y los bucles de eventos. Son un sistema de flujo de control que permite simplificarse las abstracciones de nivel superior.

Las fibras proporcionan un mecanismo para las llamadas de función de ASYNC a aparecer como operaciones síncronas. Puede eliminar el código de la placa de calderas que viene con promesas y devoluciones de llamada. Las fibras se encargan de suspender y reanudar el código en los puntos apropiados, proporcionando una sola API para las implementaciones de operaciones de bloqueo y no bloqueo.

Los llamados han sido elevados al estado de primera clase en el idioma PHP. Esto significa que puede asignar funciones directamente a las variables sin usar la sintaxis de la matriz antigua o creando explícitamente los cierres. Este cambio será más beneficioso en contextos que involucren programación funcional.

Con la asignación de variables directa, las funciones que pasan alrededor son más limpias y más fáciles. El .

Conclusión

. Reemplazo de los parámetros de la función es una parte requerida de la sintaxis. Esto indica que desea asignar la función a la variable en lugar de llamarla y asignar el valor de retorno.

Además, se ha agregado una nueva palabra clave a los inicializadores. Ahora, las instancias de objetos se pueden usar como valores de parámetros predeterminados: adicionalmente, la nueva palabra clave funciona en variables estáticas, constantes globales y argumentos de atributo.

Proporciona una mayor flexibilidad y conveniencia cuando se desea una instancia de objeto como un valor predeterminado. Para constantes de clase, ahora es compatible con la palabra clave final.

Las constantes individuales se pueden marcar como final sin encerrar a toda la clase. Anteriormente, las clases infantiles podrían sobrescribir el valor de las constantes heredadas.

Además de los principales cambios detallados anteriormente, PHP 8.

1 incluye algunas características de conveniencia que ayudan a que el código se autocontrol. Puede expresar explícitamente los números octales, por ejemplo, como 0O14, y use el nuevo tipo de retorno para denotar las funciones que lanzarán una excepción o terminará el script actual. Esto ayuda al software de análisis estático para detectar el código muerto.

La biblioteca estándar ahora incluye algunas nuevas funciones. La matriz es la lista () Determina si una matriz es una lista (foo», «barra) o una matriz asociativa (foo» => «barra), implementando una función que se encuentra con frecuencia en las pades de usuario existentes.

código. Las funciones FSYNC () y FDataSync () le permiten sincronizar los cambios en los punteros de archivo a los medios de almacenamiento subyacentes.

Además, Sodio ahora es compatible con los algoritmos de hashing XCHacha20 y Ristretto255. Finalmente, esta versión introduce la posibilidad de optimizaciones de rendimiento.

Las optimizaciones, como el uso de un caché de herencia de clase, pueden resultar en un libre por.