Quando descubro uma nova versão do PHP chegando, sempre me pego pensando em como as mudanças vão afetar meus projetos em produção, as aplicações SaaS que ajudo empresas brasileiras a modernizar e principalmente meus estudos sobre Laravel. A transição do PHP para a versão 8.5 não é apenas a chegada de novidades técnicas: traz impactos direto na arquitetura, na segurança e no dia a dia de quem trabalha com sistemas legados ou desenha soluções escaláveis. No projeto que carrego, focado em auxiliar CTOs e fundadores na tomada de decisões estratégicas, percebo o quanto é fundamental entender depreciações antes que virorem erros críticos na próxima atualização.
Como acompanhar as mudanças do PHP?
Sempre recomendo partir das fontes oficiais. O melhor local para esclarecer dúvidas e entender cada ajuste é a página de RFCs e depreciações do PHP 8.5. Ali, toda proposta técnica é amplamente debatida, antes mesmo de ser aceita por padrão na linguagem.
Além disso, costumo estudar detalhadamente as análises da php.watch sobre novidades no PHP 8.5, porque apresentam vantagens e desvantagens dos novos métodos, exemplos reais e impactos práticos do ponto de vista de quem desenvolve frameworks modernos como Laravel.

Novidades no PHP 8.5 que merecem destaque
Embora muitos foquem só em melhorias de performance ou adições visíveis, uma das principais características do PHP 8.5 está nas depreciações que abrem caminho para a futura versão 9. Saber que funções e sintaxes vão desaparecer ou provocar novos erros permite antecipar ajustes e evitar surpresas em ambientes de produção.
- Depreciações de métodos mágicos como
__sleep()e__wakeup() - Remoção do uso de backticks para executar comandos no shell
- Mudanças quanto à redefinição de constantes
- Novos requisitos no uso de palavras reservadas
- Ajustes no padrão de clonagem de objetos
- Alteração na exigência do retorno em funções com novo atributo
Nodecard - Depreciação do ponto e vírgula em switch-case
Essas mudanças estão detalhadas de forma aberta na lista de RFCs e também em análises independentes no php.watch. Vou comentar cada ponto à luz de quem mantém projetos Laravel e arquiteturas escaláveis, com exemplos práticos para facilitar a transição.
Métodos mágicos: fim do __sleep() e __wakeup()
Se você já precisou serializar objetos no PHP para salvar sessões, deve ter usado métodos especiais como __sleep() ou __wakeup(). Até a versão 8.4, eles eram padrões aceitos, mas no 8.5 finalmente começam a gerar avisos de depreciação.
Esses métodos mágicos facilitavam gerenciar o estado de objetos complexos ao serializar ou restaurar dados. No entanto, a tendência tem sido migrar para abordagens mais explícitas, reduzindo efeitos colaterais e aumentando a legibilidade.
Mantenha seu código preparado para o futuro.
Exemplo de código antes deprecado:
class Usuario { public $nome; public function __sleep() { return ['nome']; } public function __wakeup() { // Inicialização ao deserializar }}Com o PHP 8.5, surgirão avisos (“deprecated”), e em breve, erros. Analise desde já o uso desses métodos e busque alternativas mais modernas, como implementar interfaces específicas para serialização, ao invés dos métodos mágicos.
Redefinição de constantes: começa o alerta
Outro ponto que sempre vejo causando confusão em times de desenvolvimento: redefinir uma constante no mesmo escopo já era um erro semântico, mas agora, explicitamente, o PHP 8.5 dará um aviso de depreciação. Na versão 9, será erro fatal.
Veja um exemplo claro:
define('API_URL', 'https://api.example.com');define('API_URL', 'https://api2.example.com'); // Antes ignorado, agora depreciadoA redefinição acidental de constantes costuma ser um pesadelo para manutenção de sistemas, principalmente em SaaS e projetos Laravel legados . Reviso frequentemente esses pontos em auditorias técnicas, evitando conflitos de dependências ou valores errados em produção.
Backticks para execução de comandos no shell: depreciados
A execução de comandos de shell usando backticks (``) sempre foi polêmica. Apesar de ser um recurso prático, gera riscos significativos de segurança, especialmente em aplicações web que lidam com dados externos.
No PHP 8.5, o uso de backticks será marcado como depreciado. A recomendação de segurança sempre foi substituir por funções como shell_exec().
$output = `ls -l`; // Padrão antigo, agora depreciado$output = shell_exec('ls -l'); // Padrão seguro recomendadoAo modernizar código legado, reviso todos esses pontos automaticamente, porque já vi cenários em que comandos injetados por backtick abriram brechas em SaaS de clientes. Portanto, é hora de fazer buscas no código-fonte e substituir esses padrões.

Novos padrões para palavras reservadas: “integer” e “boolean”
Dois termos presentes em casts e declarações de tipo sempre foram conhecidos: integer e boolean. Entretanto, nunca foram padronizados como nomes canônicos de tipos, o certo é int e bool.
No PHP 8.5, o uso desses sinônimos será descontinuado, como já consta na documentação oficial das depreciações. Qualquer referência precisará ser ajustada.
$idade = (integer) $input; // Padrão antigo, agora depreciado$ativo = (boolean) $input; // Padrão antigo, agora depreciado// O correto:$idade = (int) $input;$ativo = (bool) $input;
Pode parecer detalhe técnico, mas deixar o código aderente à nova sintaxe reduz o risco de bugs ocultos e simplifica auditorias, uma demanda clara nos projetos que oriento para tomadores de decisão.
Depreciações em switch-case: ponto e vírgula não é mais aceito silenciosamente
Sempre que reviso código legado, costumo encontrar instruções case em switch-case separadas por ponto e vírgula ao invés de dois pontos, algo que antes passava despercebido. No PHP 8.5, esse comportamento agora irá disparar um aviso de depreciação:
switch ($acao) { case 'salvar'; // Agora gera aviso salvar(); break;}A recomendação é sempre usar dois pontos para delimitar cada case:
switch ($acao) { case 'salvar': salvar(); break;}Pequenos ajustes como esse evitam efeitos colaterais sutis, principalmente ao integrar sistemas web modernos e frameworks onde a padronização de código faz real diferença.
Nodecard: O novo atributo que muda comportamentos
Um dos temas mais debatidos nas RFCs do PHP 8.5 é o novo atributo Nodecard. Com ele, quando uma função é declarada como Nodecard, passa a ser obrigado capturar explicitamente o seu retorno. Ou seja, se a função retorna algo, você não pode simplesmente ignorar o resultado:
#[Nodecard]function processaDados(): array { return [];}processaDados(); // Gera aviso: retorno precisa ser capturado$dados = processaDados(); // OkMinha experiência mostra que, principalmente em integrações com APIs e partes críticas de SaaS, ignorar retornos de funções pode ocultar erros e trazer insegurança ao código.
Com a obrigatoriedade trazida pelo Nodecard, o código PHP se aproxima de padrões de qualidade de linguagens como Rust e Kotlin, promovendo maior confiabilidade, algo que costumo buscar em projetos onde a estabilidade operacional é prioridade.
Clone wif: clonagem facilitada para read-only
A evolução do PHP 8.5 também passa pela renovação de recursos fundamentalmente orientados ao paradigma objeto. O novo comportamento do clone wif permite clonar objetos que são read-only (somente leitura), simplificando o uso do padrão imutável.
Antes, clonar instâncias definidas como somente leitura podia gerar exceções inesperadas. Agora, o PHP 8.5 flexibiliza esse processo, tornando o gerenciamento de entidades imutáveis mais seguro e intuitivo, principalmente em projetos onde consistência de dados faz diferença.
readonly class Produto { public function __construct( public string $nome, public float $preco ){}}$p1 = new Produto('Livro', 39.9);$p2 = clone $p1; // Antes: exceção, agora: permitidoEssa novidade se encaixa perfeitamente em arquiteturas orientadas a eventos e sistemas financeiros, como já discuti em artigos anteriores do projeto Gustavo Henrique Santos sobre modernização de SaaS. Para quem usa Laravel, aplicar padrões imutáveis pode elevar a previsibilidade dos workflows.

Outras depreciações aceitas e ainda em discussão
Nem tudo no PHP 8.5 está fechado. Algumas propostas aprovadas já estão disponíveis para teste, enquanto outras ainda geram debate entre implementadores.
Depreciação de constantes MHASH_*
As antigas constantes MHASH_* ligadas a funções de hash estão sendo removidas, seguindo uma política clara por mais segurança e atualização das bibliotecas. Em sistemas antigos de autenticação, faço sempre um alerta para verificar se há uso dessas constantes e trocar por funções de hash modernas.
Custom output handlers retornam apenas string
Outra exigência impactante ficou para quem cria funções personalizadas de output. Antes, era possível retornar outros tipos além de strings. Agora, o PHP 8.5 exige retorno estritamente de string. Se o retorno for diferente, será disparado um aviso de depreciação.
Nomes de cast não canônicos
Referências como real, integer e boolean devem ser substituídas pelo padrão oficial: float, int, bool. Esse rigor aproxima o PHP das boas práticas modernas e simplifica o onboarding de novos desenvolvedores em equipes de SaaS, como observo diariamente.
Dicas práticas para adaptar seus projetos PHP e Laravel
Mantenho sempre uma rotina objetiva quando surge uma nova versão assim:
- Auditoria automatizada no código-fonte para identificar padrões depreciados.
- Uso de ferramentas de análise estática, como PHPStan e Psalm, configurados para avisar sobre elementos obsoletos.
- Validação em pipelines de CI/CD, garantindo que nenhum artefato legacy chegue à produção sem revisão.
- Capacitação rápida do time, preparando desenvolvedores para entender novos avisos e propor soluções aderentes às diretrizes recentes.
- Testes regressivos antes da atualização dos ambientes, garantindo que nada “quebra” após o upgrade.
Esse processo estrutura a modernização das aplicações, ponto central do projeto Gustavo Henrique Santos, sempre focando em PHP moderno e transições suaves para clientes corporativos.
O impacto das mudanças no dia a dia com Laravel
Quem acompanha frameworks como Laravel sente de perto a influência das atualizações de base. No PHP 8.5, cada alteração pode repercutir em bibliotecas, pacotes ou comandos do próprio artesão. Sempre sugiro manter-se atualizado pelo guia essencial de desenvolvimento Laravel e verificar as recomendações dos mantenedores das dependências.
Além disso, mantenho minha rotina de leitura nos principais artigos sobre desenvolvimento e softwares modernos, principalmente quando se trata de evoluir as bases técnicas, prevenir bugs e aumentar a confiabilidade dos produtos digitais.
Caso precise entender como as mudanças afetam outros componentes de software ou queira consultar novidades, aqui está a busca avançada do projeto, onde organizo pesquisas sobre tecnologia e PHP.
Por que acompanhar as RFCs do PHP?
Além do que é documentado oficialmente, as discussões em RFCs do PHP sempre trazem contexto e bastidores das decisões. Entender este processo permite antecipar tendências, planejar refatorações e alinhar equipes multiculturais e globais sem sustos desnecessários.
No meu trabalho, incluir análise de RFCs no roadmap de modernização das plataformas SaaS resulta em menos retrabalho no futuro e menos incidentes em produção.
Observações sobre temas ainda em discussão
Nem todas propostas em análise são aprovadas. A dinâmica ágil da comunidade PHP garante que apenas recursos com respaldo técnico amplo são incluídos. Mudanças impactantes podem voltar em releases futuros, mas só permanecem aquilo que agrega qualidade e segurança.
É fundamental acompanhar os calendários de liberação e os scripts de teste liberados toda release candidate, para planejar e treinar o time antes de alterar ambientes produtivos.
Conclusão: uma oportunidade para modernizar, padronizar e ganhar segurança
Analisar depreciações, muito mais que uma obrigação, é convite para refinar padrões, eliminar riscos e preparar produtos digitais para escalar sem surpresas. PHP 8.5 inaugura um ciclo onde cada ajuste sugere melhores práticas, tanto para desenvolvedores individuais como para empresas que buscam crescer no cenário SaaS brasileiro.
Na minha experiência, modernizações bem planejadas, adotando as novidades trazidas pelas RFCs e integrando frameworks como Laravel, resultam em sistemas mais estáveis e prontos para competir em qualquer mercado.
Mudanças trazem oportunidades para evoluir todas as camadas do seu produto.
Se você quer saber mais sobre como modernizar seus projetos, seja para migrar de versões, resolver problemas em sistemas legados ou construir para escala, recomendo navegar pelas categorias de desenvolvimento, tecnologia e software do projeto Gustavo Henrique Santos e acompanhar conteúdos práticos pensados para fundadores, CTOs e times técnicos.
Conheça mais, tire dúvidas e mantenha suas soluções sempre à frente do tempo.
Perguntas frequentes sobre o PHP 8.5 e depreciações
O que mudou no PHP 8.5?
O PHP 8.5 trouxe diversas depreciações, como o fim dos métodos mágicos __sleep() e __wakeup(), remoção do uso de backticks para execução de comandos em shell, fim da redefinição de constantes sem alertas, e a descontinuação dos nomes de cast não canônicos (integer, boolean, etc.). Além disso, introduziu o novo atributo Nodecard para exigir o uso do retorno de funções e flexibilizou a clonagem de objetos read-only. Essas e outras mudanças detalhadas nas RFCs oficiais visam maior padronização, segurança e previsibilidade.
Como as depreciações afetam o Laravel?
O Laravel depende fortemente das APIs do PHP. Depreciações como os métodos mágicos, alterações em palavras reservadas (integer, boolean), regras para constantes e execuções de shell afetam diretamente middlewares, comandos artisan e pacotes. Manter todos os componentes Laravel compatíveis exige revisão constante do código e atualização dos pacotes das dependências.
Preciso atualizar meu projeto Laravel agora?
Se seu projeto Laravel está rodando em PHP 8.4 ou anterior, não é obrigatório atualizar imediatamente. No entanto, recomendo começar auditorias para identificar e corrigir padrões depreciados antes que se tornem erros fatais na futura versão 9. O processo será mais tranquilo se você planejar com antecedência.
Quais funções do PHP 8.5 foram depreciadas?
Dentre as funções e comportamentos depreciados no PHP 8.5 estão: redefinição de constantes, métodos mágicos __sleep e __wakeup, uso de backticks (``) para shell, castings com integer e boolean, constantes MHASH_*, e manipulação inadequada de switch-case com ponto e vírgula. Recomendo analisar a completa lista técnica da php.watch para não correr riscos.
É seguro rodar Laravel no PHP 8.5?
Sim, desde que o ecossistema do seu projeto Laravel esteja atualizado, sem usos de padrões depreciados e com dependências compatíveis, é seguro rodar a framework no PHP 8.5. Faça sempre um ciclo completo de testes automatizados antes e depois de migrar de versão. Monitore RFCs e releases oficiais para não ser pego de surpresa em futuras atualizações.
