PHP 8.4: O que mudou e como isso impacta seu código
PHP & Backend

PHP 8.4: O que mudou e como isso impacta seu código

2 min de leitura

PHP 8.4 trouxe Property Hooks, Asymmetric Visibility e melhorias no JIT. Veja o que realmente importa para aplicações em produção.

Property Hooks: a maior mudança desde o PHP 8.0

PHP 8.4 introduziu Property Hooks — uma forma de definir lógica de get e set diretamente na declaração da propriedade, sem precisar de métodos separados. A sintaxe é limpa e elimina a cerimônia dos getters/setters tradicionais.

class User {
    public string $fullName {
        get => trim("$this->firstName $this->lastName");
    }
}

Isso não é açúcar sintático trivial. É uma mudança que permite interfaces mais expressivas e elimina classes de VO (Value Objects) verbosas.

Reproduzir: Vídeo do YouTube

Asymmetric Visibility

Outra adição significativa é a visibilidade assimétrica de propriedades. Agora é possível ter uma propriedade pública para leitura e restrita para escrita:

class Order {
    public private(set) int $total = 0;
}

Melhorias no JIT

O compilador JIT teve refatoração interna no PHP 8.4. Para a maioria das aplicações web, o ganho de JIT ainda é marginal — mas workloads CPU-bound (processamento de imagens, parsers) se beneficiam consideravelmente.

Em produção, desabilitar JIT em aplicações web puras e habilitar apenas onde há CPU-bound real. O overhead de compilação pode superar o ganho em requisições curtas.

O que fazer agora?

  • Atualizar a imagem Docker para php:8.4-fpm-alpine

  • Revisar código que depende de comportamento de type coercion

  • Explorar Property Hooks em entidades e VOs

  • Rodar PHPStan com level 9 para encontrar incompatibilidades

IMAGEM DE TESTE