Saiu o PHP 8.3 Alpha 1!
Foi lançada a versão 8.3 Alpha 1 do PHP, com diversas melhorias! Leia abaixo para ter mais detalhes.
A primeira mudança relevante é a implementação da função json_validate()
. Com essa função se verifica rapidamente se uma string está no formato JSON sem realizar operações de decodificação.
Além disso, houve melhoria no tratamento de erros, como por exemplo, erros de estouro de pilha. Agora existem duas novas diretivas: zend.max_allowed_stack_size
e zend.reried_stack_size
que foram adicionadas ao arquivo ini para definir o tamanho máximo da pilha permitido e reservado.
Sobre o funcionamento, é mencionado que o programa irá travar quando se aproximar do esgotamento da pilha, quando a pilha encher mais que a diferença entre os valores de zend.max_allowed_stack_size e zend.reried_stack_size (a execução irá parar sem trazer a situação a uma falha de segmentação).
E foram implementadas melhorias relacionadas ao tratamento de falha na formatação de data/hora, com a criação de excecões específicas, ao invés de meros erros genéricos. As novas exceções são: DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError.
Além dos já citados, algumas outras implementações menores foram realizadas:
-
Adicionada a capacidade de extrair constantes usando a sintaxe de classe dinâmica.
-
A função adicionada getBytesFromString() pode ser usada para gerar uma string do comprimento desejado a partir de bytes de uma string escolhida aleatoriamente
-
Tratamento aprimorado de erros que ocorrem ao analisar dados serializados na função unserialize() . Em caso de problemas, unserialize() agora retornará E_WARNING em vez de E_NOTICE.
-
Adicionado getfloat() que retorna um float entre $min e $max
-
Função nextfloat() adicionada .
-
Adicionadas novas funções POSIX posix_sysconf(), posix_pathconf(), posix_fpathconf() e posix_eaccess().
-
Ao usar FFI, as funções C que têm um tipo de retorno void agora retornam null em vez de retornar FFI\CData:void
-
posix_getrlimit() agora usam um parâmetro $res opcional para permitir obter um único limite de recurso.
-
gc_status() tem quatro novos campos: running, protected, full buffer_size.
-
class_alias() agora suporta a criação de um alias de uma classe interna.
-
mysqli_poll() agora gera ValueError quando argumentos de leitura ou erro são passados.
-
array_pad() agora é limitado apenas pelo número máximo de elementos que um array pode ter. Anteriormente, só era possível adicionar no máximo 1048576 itens por vez.
-
Novas funções posix: posix_sysconf(), posix_pathconf(), posix_fpathconf()yposix_eaccess()
-
A execução de proc_get_status() várias vezes agora sempre retornará o valor correto em sistemas posix.