PHP Core Roundup 9

Marcos Marcolin • February 5, 2023

php phpfoundation opensource php-core-roundup

Conforme o Core Roundup #9, essas são algumas melhorias e RFCs para a versão 8.3, destaques do mês de Janeiro:

RFC em votação: Readonly amendments

A sugestão de mudança é para classes normais poderem estender(herdar) de classes Readonly(somente leitura). Hoje, é proibido e lança um ‘Fatal error‘. Também, é permitir a reinicialização de propriedades Readonly durante a clonagem.

RFC implementada: Randomizer Additions

Melhoria na nova extensão ‘Random‘ do PHP, criada para padronizar a geração de números aleatórios/randômicos. Esta RFC propõe adicionar os métodos getBytesFromString() e getFloat()/nextFloat(), para geração de string e ponto flutuante(float) aleatório. Estas operações geralmente são aplicadas na userland, com uma certa dificuldade.

RFC em discussão: Path to Saner Increment/Decrement operators

Alteração no operador de incremento($v++) e decremento($v–), para padronizar a saída quando utilizado com tipo int ou float. Muitas vezes, a saída é inesperada.

A ideia é para $v++ ser igual $v += 1, e $v– à $v -= 1.

RFC em discussão: Saner array_(sum|product)()

Aqui, é para gerar um aviso quando a utilização de array_sum() e array_product() tiverem um array com tipos incompatíveis. Isso irá gerar incompatibilidade com versões anteriores.

RFC recusada: Asymmetric Visibility

Nesta, teria uma nova sintaxe para declaração do encapsulamento de propriedades de uma classe, ex:

class Foo {

  public private(set) string $bar;

}

No trecho acima, a operação getBar() seria pública, enquanto setBar() privada.


Além destas e outras RFCs, foram implementadas diversas melhorias de desempenho, principalmente nas extensões mbstring e random.

Pude acompanhar diversos PRs de dezembro de 2022 para cá e é perceptível a evolução e melhorias que a linguagem vem recebendo, a PHP Foundation deu um ‘gás’ para a linguagem continuar evoluindo. 🙂