'PHP 8.1 es una actualización importante del lenguaje PHP. Enumeraciones, propiedades de solo lectura, sintaxis first-class callable, fibers, tipos de intersección, mejoras de rendimiento y más.',
'main_title' => 'Released!',
'main_subtitle' => 'PHP 8.1 es una actualización importante del lenguaje PHP.
Contiene muchas características nuevas y mejoradas, incluyendo enumeraciones, propiedades de solo lectura, sintaxis first-class callable, fibers, tipos de intersección, mejoras de rendimiento y más.',
'upgrade_now' => '¡Actualizar a PHP 8.1 ahora!',
'documentation' => 'Doc',
'enumerations_title' => 'Enumeraciones',
'enumerations_content' => 'Use enum
en lugar de un conjunto de constantes y obtenga la validación lista para su uso.',
'readonly_properties_title' => 'Propiedades de solo lectura',
'readonly_properties_content' => '
Las propiedades de solo lectura no se pueden cambiar después de la inicialización, es decir, después de que se les asigne un valor. Son una excelente manera de modelar objetos de valor y objetos de transferencia de datos.
', 'first_class_callable_syntax_title' => 'Sintaxis First-class Callable', 'first_class_callable_syntax_content' => 'Ahora es posible obtener una referencia a cualquier función; esto se llama sintaxis First-class Callable.
', 'new_in_initializers_title' => 'Expresión New en constructor', 'new_in_initializers_content' => 'Los objetos instanciados pueden ahora se utilizados como parámetros por defecto, así como variables estáticas, constantes globales, así como argumentos de atributos.
Esto efectivamente permite usar atributos anidados.
', 'pure_intersection_types_title' => 'Tipos de intersección pura', 'pure_intersection_types_content' => 'Utilice tipos de intersección cuando un valor necesite resolver varias restricciones de tipado al mismo tiempo.
Actualmente no es posible mezclar tipos de intersección y unión como A&B|C
.
Una función o método declarado con el tipo never
indica que no devolverá un valor y producirá una excepción o finalizará la ejecución del script con una llamada de die()
, exit()
, trigger_error()
, o similar.
Es posible declarar la constante final
en la clase, para que no puedan ser sobreescrita en las clases heredadas.
Ahora es posible escribir números octales con el prefijo explícito 0o
.
Fibers es la forma primitiva para la implementación ligera de concurrencia. Son un medio para crear bloques de código que se puedan pausarse y reanudarse como generadores (Generators), pero desde cualquier lugar de la pila. Los Fibers en sí mismo, no proporcionan la concurrecia mágicamente, todavía se necesita tener un bucle de eventos. Sin embargo, permiten que las implementaciones de bloqueo y no-bloqueo compartan la misma API.
Los Fibers permiten deshacerse del código repetitivo visto anteriormente con Promise::then()
o las corutinas basadas en el generador (Generator). Las bibliotecas generalmente construirán más abstracciones alrededor de Fibers, por lo que no hay necesidad de interactuar con ellas directamente.
PHP soportaba la desestructuración de Arrays, pero solo si el Array tenía keys de tipo integer. Ahora también es posible la desestructuración de Arrays con keys de tipo string.
', 'performance_title' => 'Mejoras de rendimiento', 'performance_chart' => 'Aplicación de demostración de Symfony - tiempo de solicitudes#[ReturnTypeWillChange]
.',
'other_new_fsync_fdatasync' => 'Nuevas funciones fsync
y fdatasync
.',
'other_new_array_is_list' => 'Nueva función array_is_list
.',
'other_new_sodium_xchacha20' => 'Nuevas funciones para Sodium XChaCha20.',
'bc_title' => 'Obsolescencias y la falta de compatibilidad con versiones anteriores',
'bc_null_to_not_nullable' => 'Pasar null como parámetro en funciones internas non-nullable queda obsoleto.',
'bc_return_types' => 'Tipos de retorno en los métodos de clase integrados de PHP',
'bc_serializable_deprecated' => 'Interfaz Serializable
es obsoleta.',
'bc_html_entity_encode_decode' => 'Las funciones de entidad HTML en/decode procesan comillas simples y son sustituidas por defecto.',
'bc_globals_restrictions' => 'Restricciones en la variable $GLOBALS
.',
'bc_mysqli_exceptions' => 'MySQLi: Modo de error predeterminado establecido en excepciones.',
'bc_float_to_int_conversion' => 'La conversión implícita incompatible de float a int es obsoleta.',
'bc_finfo_objects' => 'Extensión finfo: recursos de file_info
migrado a objetos finfo existentes.',
'bc_imap_objects' => 'IMAP: imap resources migrated to IMAP\Connection
class objects.',
'bc_ftp_objects' => ' Extensión FTP: Recursos de conexión migrados a la clase FTP\Connection
.',
'bc_gd_objects' => 'Extensión GD: Los indetificadores de fuentes (Font) migrados a la clase GdFont
.',
'bc_ldap_objects' => 'LDAP: recursos migrados a las clases LDAP\Connection
, LDAP\Result
, y LDAP\ResultEntry
.',
'bc_postgresql_objects' => 'PostgreSQL: recursos migrados a las clases PgSql\Connection
, PgSql\Result
, y PgSql\Lob
.',
'bc_pspell_objects' => 'Pspell: los recursos de configuración de pspell y pspell han sido migrados a las clases PSpell\Dictionary
, PSpell\Config
.',
'footer_title' => 'Mejor rendimiento, mejor sintaxis, mejor seguridad de tipos.',
'footer_content' => 'Para descargar el código fuente de PHP 8.1, visite la página de descargas. Los binarios de Windows se encuentran en el sitio de PHP para Windows. La lista de cambios se registra en el ChangeLog.
La guía de migración está disponible en el Manual de PHP. Por favor, consúltelo para obtener una lista detallada de las nuevas características y los cambios incompatibles con versiones anteriores.
', ];