O PHP 8.5 chegou trazendo recursos que tornam o código mais limpo, seguro e performático. Como desenvolvedor sênior em PHP, vejo essa versão como um passo importante na modernização da linguagem, com novidades que vão facilitar o dia a dia tanto de quem trabalha com back-end puro quanto em frameworks como Laravel, Symfony ou APIs REST.
A seguir, você confere um resumo das principais novidades do PHP 8.5, explicadas de forma prática, com exemplos e insights de como aplicar cada recurso no mundo real.
- Pipe Operator (|>): Código mais limpo e funcional
- First-Class Callables em constantes
- Closures em expressões constantes
- Funções de Array: array_first() e array_last()
- Visibilidade Assimétrica para static
- Atributos em constantes
- 7. #[\NoDiscard]: Não ignore o retorno
- Melhorias no debug de erros fatais
- Novas Funções para Handlers
- PHP_BUILD_DATE: Data de compilação
- Novidades no cURL
- Localização: locale_is_right_to_left()
- IntlListFormatter: Listas Localizadas
- CLI: php --ini=diff>/li>
Mostra apenas as configurações modificadas no php.ini.
Por que é útil?
Ideal para debug de ambiente e deploys.
Agora podemos encadear chamadas de funções de forma mais legível:
$result = "hello"
|> strtoupper(...)
|> trim(...)
|> ucfirst(...);
Por que é útil?
Evita variáveis temporárias e deixa pipelines de dados (ex.: sanitização de input ou processamento em APIs) muito mais fáceis de entender.
class Utils {
public static function log($msg) { /*...*/ }
}
const LOGGER = Utils::log(...);
LOGGER("teste");
Por que é útil?
Permite definir callbacks reutilizáveis sem precisar de funções auxiliares, ótimo para roteadores de frameworks, middlewares ou eventos.
const FILTER = static fn($v) => is_string($v);
Por que é útil?
Melhora a expressividade em configurações dinâmicas, atributos e metaprogramação.
$array = [10, 20, 30];
echo array_first($array); // 10
echo array_last($array); // 30
Por que é útil?
Substitui reset() e end() com uma sintaxe muito mais intuitiva.
class Settings {
public private(set) static string $mode = 'live';
}
Por que é útil?
Permite leitura pública, mas escrita apenas dentro da classe, reforçando encapsulamento.
#[Deprecated("use NEW_CONST")]
const OLD_CONST = 123;
Por que é útil?
Facilita a gestão de código legado, mostrando depreciações de forma clara.
#[\NoDiscard]
function calc(): int { return 42; }
Por que é útil?
Gera aviso se o retorno for ignorado, evitando bugs sutis.
Agora temos backtraces completos para erros fatais, tornando diagnósticos muito mais rápidos.
get_error_handler()
get_exception_handler()
Por que é útil?
Facilita a manipulação de handlers dinâmicos em frameworks e middlewares.
echo PHP_BUILD_DATE;
Por que é útil?
Ajuda em auditorias e ambientes complexos de CI/CD.
curl_multi_get_handles()
lista todas as conexões em uso.
curl_share_init_persistent()
permite conexões persistentes com cache.
Por que é útil?
Excelente para aplicações que fazem muitas requisições paralelas a APIs externas.
$isRTL = locale_is_right_to_left("fa_IR"); // true
Por que é útil?
Facilita adaptação de layouts para idiomas RTL como árabe ou hebraico.
$fmt = new IntlListFormatter("en", TYPE_CONJUNCTION, STYLE_LONG);
echo $fmt->format(["maçã","banana","cereja"]);
Por que é útil?
Melhora a experiência do usuário em aplicações multilíngues.
Considerações finais:
O PHP 8.5 prova que a linguagem está mais moderna e voltada para produtividade. Recursos como pipe operator, callables em constantes e melhorias no debug são game changers para qualquer projeto.
Se você ainda está no PHP 5.6,7.x ou 8.0, já é hora de planejar a migração para aproveitar não só os recursos, mas também as otimizações de performance e segurança.
Referências
https://php.watch/versions/8.5
Feito!