'PHP 8.1 é uma atualização importante da linguagem PHP. Enums, propriedades somente leitura, sintaxe de callables de primeira classe, fibras, tipos de interseção, melhorias de performance e mais.', 'main_title' => 'Lançado!', 'main_subtitle' => 'PHP 8.1 é uma atualização importante da linguagem PHP.
Ela contem muitas funcionalidades novas, incluindo enums, propriedades somente leitura, sintaxe de chamáveis de primeira classe, fibras, tipos de interseção, melhorias de performance e mais.', 'upgrade_now' => 'Atualize para o PHP 8.1 agora!', 'documentation' => 'Doc', 'enumerations_title' => 'Enumerações', 'enumerations_content' => 'Use enum em vez de um conjunto de constantes e obtenha validação de forma transparente.', 'readonly_properties_title' => 'Propriedades Somente Leitura', 'readonly_properties_content' => '

Propriedades somente leitura não podem ser alteradas após a inicialização, ou seja, após um valor ser atribuido a elas.
Elas são uma ótima maneira de modelar objetos de valor (Value Objects) e objetos de transferência de dados (DTO).

', 'first_class_callable_syntax_title' => 'Sintaxe de Callabes de Primeira Classe', 'first_class_callable_syntax_content' => '

Agora é possível obter a referência de qualquer função – isso é chamado de sintaxe de callable de primeira classe.

', 'new_in_initializers_title' => 'New em inicializadores', 'new_in_initializers_content' => '

Objetos agora podem ser usados como valor padrão de parâmetros, variáveis estáticas, e constantes globais, bem como em argumentos de atributos.

Isso efetivamente torna possível usar atributos aninhados.

', 'pure_intersection_types_title' => 'Tipos de Interseção Puros', 'pure_intersection_types_content' => '

Use tipos de interseção quando um valor precisa satisfazer múltiplas restrições de tipo ao mesmo tempo.

Atualmente não é possível misturar tipos de interseção e união como A&B|C.

', 'never_return_type_title' => 'Tipo de retorno never', 'never_return_type_content' => '

Uma função ou método declarada com o tipo never indica que ela não irá retornar um valor e irá lançar uma exceção ou terminar a execução do script com uma chamada de die(), exit(), trigger_error(), ou algo similar.

', 'final_class_constants_title' => 'Constantes de classe finais', 'final_class_constants_content' => '

É possível declarar constantes de classe como final, de forma que elas não possam ser sobrescritas em classes filhas.

', 'octal_numeral_notation_title' => 'Notação explícita de numeral octal', 'octal_numeral_notation_content' => '

Agora é possível escrever números octais com o prefixo explícito 0o.

', 'fibers_title' => 'Fibras', 'fibers_content' => '

Fibras são primitivos para implementar concorrência cooperativa leve. Elas são meios de criar blocos de código que podem ser pausados e retomados como Geradores, mas de qualquer lugar da pilha de execução. Fibras em si não fornecem concorrência magicamente, um laço de eventos ainda é necessário. No entanto, elas permitem que implementações bloqueantes e não bloqueantes compartilhem a mesma API.

Fibras permitem livrar-se de código boilerplate visto anteriormente com Promise::then() ou corrotinas baseadas em Geradores. Bibliotecas geralmente constróem abstrações adicionais em torno das Fibras, então não há necessidade de interagir com elas diretamente.

', 'array_unpacking_title' => 'Suporte a desempacotamento de array para arrays com chaves string', 'array_unpacking_content' => '

PHP já suportava o desempacotamento dentro de arrays através do operador de espalhamento, mas somente se o array tivesse chaves de inteiro. Agora também é possível desempacotar arrays com chaves string.

', 'performance_title' => 'Melhorias de Performance', 'performance_chart' => 'Tempo de requisição do App Demo Symfony
25 execuções consecutivas, 250 requisições (sec)
(menos é melhor)
', 'performance_results_title' => 'O resultado (relativo ao PHP 8.0):', 'performance_results_symfony' => '23.0% mais rápido no Demo Symfony', 'performance_results_wordpress' => '3.5% mais rápido no WordPress', 'performance_related_functions_title' => 'Funcionalidades relacionadas a performance no PHP 8.1:', 'performance_jit_arm64' => 'Backend JIT para ARM64 (AArch64)', 'performance_inheritance_cache' => 'Cache de herança (evita religamento de classes em cada requisição)', 'performance_fast_class_name_resolution' => 'Resolução rápida de nome de classe (evita conversão em minúsculas e busca via hash)', 'performance_timelib_date_improvements' => 'Melhorias de performance na timelib e ext/date', 'performance_spl' => 'Melhorias em iteradores de sistema de arquivo SPL', 'performance_serialize_unserialize' => 'Otimizações em serialize/unserialize', 'performance_internal_functions' => 'Otimização de algumas funções internas (get_declared_classes(), explode(), strtr(), strnatcmp(), dechex())', 'performance_jit' => 'Melhorias e correções no JIT', 'other_new_title' => 'Novas Classes, Interfaces e Funções', 'other_new_returntypewillchange' => 'Novo atributo #[ReturnTypeWillChange].', 'other_new_fsync_fdatasync' => 'Novas funções fsync e fdatasync.', 'other_new_array_is_list' => 'Nova função array_is_list.', 'other_new_sodium_xchacha20' => 'Novas funções Sodium XChaCha20.', 'bc_title' => 'Alterações obsoletas e incompatibilidades com versões anteriores', 'bc_null_to_not_nullable' => 'Passagem de null para parâmetros não anuláveis em funções internas está depreciada.', 'bc_return_types' => 'Tipos de retorno provisórios em métodos de classes embutidas do PHP.', 'bc_serializable_deprecated' => 'Interface Serializable depreciada.', 'bc_html_entity_encode_decode' => 'Funções de de/codificação de entidades HTML processam aspas simples e as substituem por padrão.', 'bc_globals_restrictions' => 'Restrições da variável $GLOBALS.', 'bc_mysqli_exceptions' => 'MySQLi: Modo de erro padrão definido para exceções.', 'bc_float_to_int_conversion' => 'Conversão implícita incompatível de float para int está depreciada.', 'bc_finfo_objects' => 'Extenção finfo: Recursos file_info migrados para objetos finfo existentes.', 'bc_imap_objects' => 'IMAP: Recursos imap migrados para objetos da classe IMAP\Connection.', 'bc_ftp_objects' => 'Extensão FTP: Recursos de conexão migrados para objetos da classe FTP\Connection.', 'bc_gd_objects' => 'Extensão GD: Identificadores de fonte migrados para objetos da classe GdFont.', 'bc_ldap_objects' => 'LDAP: Recursos migrados para objetos LDAP\Connection, LDAP\Result, e LDAP\ResultEntry.', 'bc_postgresql_objects' => 'PostgreSQL: Recursos migrados para PgSql\Connection, PgSql\Result, e PgSql\Lob objects.', 'bc_pspell_objects' => 'Pspell: Recursos de dicionário e configuração migrados para objetos de classe PSpell\Dictionary e PSpell\Config.', 'footer_title' => 'Mais performance, melhor sintaxe, segurança de tipos aperfeiçoada.', 'footer_content' => '

Para downloads dos fontes do PHP 8.1, por favor visite a página de downloads. Binarios para Windows podem ser encontrados no site PHP for Windows. A lista de mudanças está registrada em ChangeLog.

O guia de migração está disponível no Manual do PHP. Por favor, consulte-o para uma lista delhadada de novas funcionalidades e mudanças incompatíveis com versões anteriores.

', ];