PHP 8.4: As principais novidades que você precisa conhecer

PHP 8.4: As principais novidades que você precisa conhecer

Novas funcionalidades foram incluídas, como hooks para propriedades, suporte aprimorado para HTML5, dentre outros.

Publicado em

O PHP 8.4 trouxe uma série de recursos inovadores que prometem transformar a forma como os desenvolvedores escrevem e mantêm o código. Se você é programador ou está envolvido no desenvolvimento web, as melhorias dessa versão com certeza vão impactar seu dia a dia, simplificando tarefas, melhorando a legibilidade e trazendo novas possibilidades para otimizar a performance. Vamos explorar as principais mudanças e entender como elas podem fazer a diferença no seu trabalho.

Propriedades com Hooks: Menos Getters e Setters, mais clareza no código

Uma das adições mais aguardadas do PHP 8.4 são as property hooks, que permitem definir diretamente os comportamentos de acesso e modificação das propriedades de uma classe. Em vez de criar métodos getters e setters redundantes, você agora pode usar os hooks para definir o comportamento de cada propriedade diretamente na classe.

Exemplo prático:

class BookViewModel {
    public function __construct(
        private array $authors,
    ) {}

    public string $credits {
        get {
            return implode(', ', array_map(
                fn (Author $author) => $author->name,
                $this->authors,
            ));
        }
    }
}

Com isso, a criação de métodos redundantes é evitada, tornando o código mais limpo e mais fácil de manter. Além disso, é possível definir hooks de leitura e escrita nas propriedades, o que abre novas possibilidades para controle dinâmico dos dados.

Sintaxe simplificada: Agora você pode encadear métodos sem parênteses

Uma das melhorias que mais entusiastaram a comunidade foi a remoção da necessidade de parênteses ao encadear métodos. Em versões anteriores, a sintaxe era mais verbosa, obrigando o uso de parênteses para chamadas encadeadas, como no exemplo:

$name = (new ReflectionClass($objectOrClass))->getShortName();

No PHP 8.4, isso foi simplificado, permitindo que o código ficasse mais limpo e intuitivo:

$name = new ReflectionClass($objectOrClass)->getShortName();

Essa mudança reduz a verbosidade e melhora a legibilidade, especialmente em códigos que fazem múltiplas chamadas encadeadas.

Visibilidade Assimétrica: Maior controle sobre propriedades

Outra inovação importante é a introdução da visibilidade assimétrica para propriedades. Isso permite que você defina diferentes níveis de visibilidade (como public, protected, ou private) para leitura e escrita de uma mesma propriedade. O exemplo clássico é aquele em que uma propriedade é pública para leitura, mas só pode ser modificada de dentro da classe:

class BookViewModel {
    public private(set) Author $author;
}

Isso oferece mais flexibilidade e controle sobre os dados da sua aplicação, permitindo que você esconda a lógica de modificação enquanto mantém o acesso de leitura aberto.

Nova função array_find: Simplificando a busca em arrays

O PHP 8.4 também introduziu a função array_find, que permite localizar rapidamente o primeiro item de um array que atenda a uma condição especificada. Essa função economiza tempo e melhora a legibilidade do código, evitando a necessidade de criar loops manuais.

$firstMatch = array_find($posts, fn(Post $post) => strlen($post->title) > 5);

Junto com array_find, há outras funções úteis como array_find_key, array_any e array_all, que podem facilitar ainda mais a manipulação de arrays.

Suporte ao HTML5: Nova classe \Dom\HTMLDocument

A manipulação de HTML com PHP ganha um grande avanço no PHP 8.4, com a introdução da classe \Dom\HTMLDocument, que agora oferece suporte completo ao HTML5. Essa classe facilita a análise e manipulação de código HTML moderno, oferecendo uma alternativa mais robusta ao antigo \DOMDocument.

Exemplo de uso:

$doc = \Dom\HTMLDocument::createFromString($contents);

Isso ajuda a lidar com documentos HTML5 de maneira mais eficiente e compatível, sem a necessidade de bibliotecas externas.

Depreciação de tipos implícitos Nulos

Uma mudança importante, embora mais voltada para a migração de código, é a depreciação do comportamento de tipagem implícita nula. Em versões anteriores, o PHP permitia que parâmetros com valor padrão null fossem tratados como se fossem de tipo ?Type. Agora, é necessário declarar explicitamente o tipo nulo, o que melhora a clareza e a segurança do código.

Exemplo:

function save(?Book $book = null) {}

Com isso, o código se torna mais seguro, garantindo que não haja interpretações automáticas que possam gerar problemas no futuro.

Conclusão

O PHP 8.4 é uma das versões mais significativas dos últimos anos, trazendo melhorias que não só simplificam a vida do desenvolvedor, mas também abrem portas para um desenvolvimento mais limpo, eficiente e moderno. Desde os property hooks até o suporte completo para HTML5, cada uma das novas funcionalidades tem o potencial de transformar a maneira como programadores lidam com tarefas cotidianas. Se você ainda não experimentou essas novas funcionalidades, agora é o momento ideal para começar a integrar o PHP 8.4 no seu fluxo de trabalho.

Prepare-se para um código mais ágil, limpo e robusto com o PHP 8.4!

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Todos os nossos cursos em promoção
Todos os nossos cursos em promoção

Webstories

Todos os nossos cursos em promoção

Todos os nossos cursos em promoção

Deixe um comentário
Aguarde...
Todos os nossos cursos em promoção