WordPress e PHP 8: Tudo o que você precisa saber!

Repositório de código-fonte PHP hackeado e deixa em alerta usuários da linguagem usada por quase 80% de todos os sites
php

O PHP 8 foi lançado em 26 de novembro, e com ele a imensa vontade de muitos donos de sites de atualizarem seus servidores. No entanto,  antes de fazer qualquer atualização crítica do WordPress, é importante conhecer alguns detalhes. Por isso separamos uma lista com todas as informações que você precisa saber sobre o PHP 8 e o WordPress.

PHP 8: O que os usuários do WordPress precisam saber

Falar de PHP 8 é quase um marco, especialmente se tratando de WordPress. A nova versão do PHP promete novos recursos e melhorias. A novidade mais aguardada é a tão sonhada melhoria no desempenho. Mas, não é só isso, os desenvolvedores do PHP 8 já avisaram que muita coisa obsoleta já entrou no pente fino.

Dito isso, é importante dizer que o PHP 8 é um lançamento marcado por muitas mudanças quando comparado com versões anteriores.

Já posso atualizar meu site WordPress para o PHP 8 ?

A resposta sem dúvida é não. O WordPress 5.6 foi lançado, e certamente quase todos os sites do mundo já fizeram a atualização. No entanto, a nova versão do WordPress 5.6 é tida como um “beta compatível” com o PHP 8.

Isso quer dizer, que vai funcionar parcialmente e que erros ou possíveis bugs podem acontecer. Por isso, não atualize o seu site WordPress para o PHP 8 agora, isso pode trazer muitas dores de cabeça, erros e perdas que você não vai querer ter.

Mesmo que você use quase nada de plugin, o que acho díficil, e não use temas de terceiros, você ainda corre riscos de tudo dar errado, ou quase tudo. A Comunidade WordPress, inclusive tem realizados muitas correções para que o mínimo de problemas ocorra, mas nada é 100%. O time WP inclusive faz uma chamada para testes entre o WordPress 5.6 e o PHP 8.

E como esperado, um bom número de plugins apresentaram problemas, mesmo aqueles populares com vasta equipe de desenvolvimento. Ainda segundo especialistas, os plugins que não apresentaram erros fatais durante os testes, pode apresentar algum erro durante o uso.

O que dizem alguns desenvolvedores WordPress?

Alguns desenvolvedores dizem que o PHP é inseguro por padrão. Claro, isso não é uma opinião geral. No entanto, é dito que as versões anteriores ao PHP 8 são mais tolerantes a falhas, e que as versões anteriores a 8 são bem mais tolerantes e que permitem a execução de alguns códigos com pequenos problemas.

Assim, já saiba que o PHP 8 não vai deixar passar os pequenos erros cometidos por desenvolvedores. Desta forma, a nova versão do PHP é mais exigente em relação às funções integradas. Então, aqueles problemas que apenas geravam avisos simples, agora geram alertas. E os alertas agora vão gerar erros.

Desta maneira, os desenvolvedores de plugins e temas do WordPress terão que ter uma atenção redobradas, e não poderão mais fazer as famosas “gambiarras” para que o código funcione, pois o PHP 8 simplesmente não vai aceitar.

Quais as funções foram removidas do PHP 8?

Muitas funções que estavam presentes na versão do PHP 7.X, agora foram removidas, dentre elas podemos destacar:

  • A $php_errormsg variable
  • A create_function() function
  • A mbstring.func_overload ini directive
  • A real type
  • A allow_url_include ini directive
  • A restore_include_path() function
  • A each() function

Segundo informações do WordFence, sobre a lista acima a mais popular é a create_funcion. Que segundo o site ainda é usada por pelo menos 5.500 plugins do WordPress.

Ainda segundo eles, possivelmente a funcionalidade ainda é usada para manter a compatibilidade com versões anteriores do PHP. Falando de especialistas, o time do popular Yoast também preparou um excelente relatório de compatibilidade, cujas informações são destinadas para desenvolvedores WordPress.

Por fim, os desenvolvedores de temas e plugins do WordPress deverão migrar seu códigos para o novo PHP ou devem fazer algo bifurcado para que tudo funcione.

Melhorias de desempenho do PHP 8

Chegou o tópico mais interessante. A melhoria que chega ao PHP 8 é a compilação JIT, ou “Just In Time”. PHP é uma linguagem interpretada, o que significa que é traduzida em código de máquina à medida que é executada. O JIT rastreia o código usado com frequência e tenta otimizar a tradução do código de máquina para que possa ser reutilizado. Isso pode resultar em uma grande melhoria de desempenho para funcionalidades específicas.

A adição de JIT a outras linguagens, como JavaScript, historicamente levou a uma explosão de novos aplicativos. Por exemplo, máquinas virtuais rodando em JavaScript seriam inimagináveis ??nos primeiros dias da web. Certas tarefas que no passado exigiriam a instalação de um módulo no servidor se tornarão práticas com o uso de bibliotecas PHP puras.

Por enquanto, no entanto, a melhoria real de desempenho para aplicativos da web como o WordPress é mínima e levará muito tempo até que o usuário ou desenvolvedor comum do WordPress obtenha os benefícios desse novo recurso.

Embora existam muitos outros novos recursos para tornar a vida dos desenvolvedores mais fácil, é improvável que eles sejam usados ??em plug-ins e temas do WordPress em um futuro próximo, já que a maioria quebraria a compatibilidade com versões anteriores do PHP ainda em uso por muitos sites WordPress.

Atualizar ou não atualizar seu site WordPress 5.6 para o PHP 8?

Eis a questão! Sem pestanejar, esse momento de transição entre o WordPress e o PHP 8 é o mais amplo e de grande impacto. Note que o trabalho para quem pretende atualizar para o PHP 8 a curto prazo será o de olhar se os plugins e temas utilizados já foram atualizados.

Se você é um desenvolvedor, comece a testar seu código e quaisquer dependências do PHP 8, se ainda não for, e comece a fazer um plano para bifurcar ou substituir quaisquer bibliotecas que não estejam sendo atualizadas. O ecossistema WordPress passou por transições difíceis no passado, e nossa comunidade de código aberto sempre cresceu e se adaptou.

Informações fornecidas pelo líder de QA Matt Rusnak e ao desenvolvedor líder Matt Barry por sua ajuda com este artigo. Equipe WordPress, Yoast e Wordfence.