PHP Core Roundup 14
Marcos Marcolin • June 30, 2023
php phpfoundation opensource php-core-roundup🎉 A próxima versão do PHP, a 8.3, está programada para ser lançada em 23 de novembro. Com isso, o congelamento de recursos está próximo.
Enquanto não chega, o núcleo segue trazendo novos recursos, melhorias internas e correções de bugs e segurança. 🐘
O PHP Core Roundup #14 destaca alguns RFCs(Request for Comments) e discussões recentes na lista de discussão do PHP. Alguns desses RFCs incluem a introdução do atributo #[\Override]
para marcar métodos sobrescritos, melhorias na função range()
, introdução da função mb_str_pad()
para manipulação de strings multibyte e propostas de depreciação de determinadas funcionalidades menos consistentes do PHP.
Sobre o novo atributo #[\Override]
, se este atributo for adicionado a um método, o mecanismo validará que existe um método com o mesmo nome em uma classe pai ou em qualquer uma das interfaces implementadas. Se tal método não existir, um erro de compilação será emitido.
// Exemplo válido
class P {
protected function p(): void {}
}
class C extends P {
#[\Override]
public function p(): void {}
}
// Exemplo válido
class Foo implements IteratorAggregate
{
#[\Override]
public function getIterator(): Traversable
{
yield from [];
}
}
// Exemplo inválido
class C
{
#[\Override]
public function c(): void {} // Fatal error: C::c() has #[\Override] attribute, but no matching parent method exists
}
// Exemplo inválido
interface I {
public function i(): void;
}
class P {
#[\Override]
public function i(): void {} // Fatal error: P::i() has #[\Override] attribute, but no matching parent method exists
}
class C extends P implements I {}
Para conferir todas as novidades do mês, clique aqui.