WordPress e PHP 8 – Compatibilidade e benefícios!
Publicados: 2021-01-04A maioria dos geeks da tecnologia está empolgada com o PHP 8.0 e, certamente, as mudanças são enormes desta vez. todo mundo vai gastar algum tempo para entender a compatibilidade, configurações, benefícios, etc., do PHP 8, e entre todas, uma das maiores perguntas que surgem é – “o WordPress já é compatível com PHP 8, e se não, então quais ações são necessárias”.
Bem, assim que o PHP 8 foi lançado, nosso tempo de especialista mergulhou no nível mais profundo de testes, e o resultado pode chocar qualquer um! Sim, sabemos tudo agora e temos prazer em ostentar nossos relatórios e resultados de degustações.
Não apenas mostraremos o que tudo mudou, mas também daremos um conselho puro sobre se você deve atualizar para o PHP 8 ou não.
Tantas mudanças de última hora no PHP 8: Mas por quê?
O PHP 8 é uma grande atualização do PHP, e é uma prática comum remover os negativos nas versões principais do intervalo recente de versões secundárias. Para o altamente falado PHP 8, várias mudanças importantes foram reduzidas nas versões 7.* anteriores.
Portanto, para projetos que foram atualizados atentamente ao longo dos anos, corrigindo suas APIs derrogadas, não deve ser difícil atualizar. Falando a verdade, as versões do PHP 7.* observaram um conjunto muito maior de depreciações em contraste com as versões anteriores do PHP.
Diríamos que PHP 5.6 para PHP 7 foi uma migração bem simples, mas passar de 7.x para 8 pode ser um pouco doloroso, especialmente para as bases de código antigas, incluindo WordPress, além de vários plugins disponíveis.
Certamente, para bases de código bem tipadas ou bases de código atualizadas com as versões mais recentes do PHP, grandes problemas não ocorrerão. No entanto, a realidade é que o WordPress não é uma base de código.
O WordPress já é compatível com PHP 8?
Falando honestamente, talvez o WordPress já seja compatível com o PHP 8, mas selar essas palavras não é possível. O WordPress visa ser sempre compatível com as versões mais recentes do PHP . No entanto, analisamos profundamente as maiores preocupações posteriormente neste guia.
Fizemos um trabalho incrível ao encontrar as correções perfeitas para a maioria dos problemas de compatibilidade que podem ser encontrados usando as estratégias disponíveis. Certamente vamos mergulhar mais fundo no que tudo estava lá e nos problemas que existem com eles.
Que mudanças de desempenho estão chegando?
O principal recurso potencialmente empolgante que chega com o PHP 8 é a compilação e depuração JIT (Just In Time). Como sabemos, PHP é uma linguagem interpretada, o que significa que é traduzida em código de máquina quando é executada.
O JIT rastreia o código usado com frequência e trabalha na otimização da tradução de código de máquina para torná-lo reutilizável. Agora, isso pode resultar em uma enorme melhoria de desempenho para uma determinada funcionalidade.
A inclusão do JIT em várias linguagens, por exemplo, JavaScript, tem conduzido historicamente uma explosão de novas aplicações. Por exemplo, máquinas virtuais rodando em JS estariam fora da imaginação nos primeiros dias da web. Algumas tarefas que precisariam da instalação de módulos no servidor no passado serão práticas usando as principais bibliotecas PHP.
Por enquanto, a elevação real de desempenho para aplicativos da web como o WordPress é mínima. Além disso, levará muito tempo até que um desenvolvedor ou um usuário médio do WordPress colha as vantagens desse novo recurso.
Existem vários outros novos recursos para facilitar a vida dos desenvolvedores; é improvável que eles sejam usados em temas e plugins WP no futuro próximo, porque a maioria quebraria a compatibilidade com as versões anteriores do PHP ainda em uso por vários sites WordPress.
Como atualizar o PHP para o seu site WordPress?
Neste guia, descreveremos o quão conveniente você pode atualizar o PHP para a versão mais recente, o mais importante, sem quebrar seu site WordPress.
Se você está ansioso para conhecer o caminho, basta verificar sua versão atual do PHP e atualizar o WordPress para a versão mais recente. Depois disso, instale o “one.com PHP scanner” e execute uma varredura para corrigir possíveis problemas. Além disso, atualize o PHP para a versão mais recente e verifique se seu site está funcionando conforme o esperado ou não.
Vamos mostrar todo o processo.
Etapa 1: verifique sua versão atual do PHP
No início, você deve verificar com qual versão do PHP você está atualmente rodando. Você pode obter as informações da versão atual do PHP do seu site na página phpinfo.
Se você estiver executando no cPanel, poderá visualizar a versão do PHP no artigo como visualizar e alterar a versão do PHP no cPanel.
Caso você esteja usando o PHP versão 7.3 ou superior, então está tudo bem. Para aqueles que possuem PHP 7.2, uma atualização é necessária. Por favor, valorize a etapa 2.
Etapa 2: atualize o WordPress para a versão mais recente
Certifique-se de que o núcleo do WordPress e todos os plugins e temas estejam atualizados para a versão mais recente, se você realmente quiser evitar qualquer mau funcionamento.
- Faça login no seu administrador do WordPress e clique em Painel > Atualizações .
- Verifique se você instalou a versão mais recente do WordPress e se todos os temas e plugins estão atualizados. Atualize seu WordPress para a versão mais recente agora.
Etapa 3: Instale o “scanner PHP one.com”.
- No administrador do WordPress , toque em one.com > Plugins .
- Localize o scanner PHP da one.com e toque em Instalar agora .
- Agora, clique em Ativar e vá para a próxima etapa.
Etapa 4: execute uma verificação e corrija possíveis problemas
- No menu à esquerda, toque em PHP scanner .
- Toque em PHP versão 7.4 , depois em “ Todos os temas e plugins ” e depois toque em Iniciar verificação .
- Você pode continuar assim que a verificação for concluída.
- Você pode ter três resultados:
– Compatível = Significa que está tudo bem!
– Aviso = Significa que deve funcionar, mas pode causar problemas com a próxima versão do PHP.
– Erro = Não é tão bom, certamente causará problemas após a atualização.
Corrija quaisquer temas ou plug-ins que leem erros, atualizando-o para a versão mais recente ou substituindo-o por um plug-in alternativo que forneça a mesma funcionalidade.
Dica: Recomendamos que você use apenas os plugins que são atualizados regularmente e não trazem problemas de compatibilidade com a versão mais recente do WordPress. Além disso, é uma boa prática remover quaisquer plugins indesejados para melhorar o desempenho do site.
Etapa 5: atualizar o PHP para a versão 8.0
Agora você está pronto para atualizar o PHP. Recomendamos ativar as mensagens de erro do PHP simultaneamente. Caso haja um problema com o código, você verá mensagens de erro informando o que está causando isso e também onde exatamente ele está localizado.
- No painel de controle, retorne às configurações do PHP e do banco de dados .
- Role para baixo até as mensagens de erro do PHP .
- Clique em Atualizar depois de definir as mensagens de erro como Ativado .
- Diretamente abaixo disso, altere a versão e toque em Atualizar .
Etapa 6: verifique se seu site está funcionando conforme o esperado.
Agora, você atualizou a versão do PHP e levará no mínimo 20 minutos para que as alterações sejam aplicadas. Se o seu site recebe muitos visitantes, o prazo pode se estender até várias horas. É por isso que recomendamos verificar seu site algumas vezes no mínimo durante as próximas 24 horas.
Caso seu site não esteja funcionando de acordo com o que você esperava, o problema mais provável é o seu tema ou qualquer plugin. Para descobrir o que exatamente está causando problemas:
- Mude temporariamente para o tema padrão do WordPress, diríamos “Twenty Seventeen”.
- Selecione todos os plugins instalados e desative-os completamente.
- Habilite os temas e todos os plugins novamente, um por um, e continue verificando a cada vez se o seu site ainda está funcionando ou não. Você pode pegar o culpado dessa maneira.
Se falarmos tecnicamente, então a compatibilidade da versão atual do WordPress com o altamente discutido PHP 8 está em um nível semelhante ao que habitamos nas versões do WordPress logo antes de uma nova versão do PHP aparecer.
Nosso teste foi tão substancial, a correção foi tão meticulosa e o nível de correções de problemas foi tão grande quanto qualquer correção de compatibilidade PHP dentro do núcleo do WordPress. No entanto, se você não seguir este guia, não poderá entender os desafios de compatibilidade e obter o máximo de benefícios do PHP 8.
A enorme quantidade de mudanças de última hora e os tipos de mudanças incluídas no PHP 8, além de algumas complexidades adicionais nas ferramentas entre versões, certamente tornam esse desafio de compatibilidade uma fera maior do que experimentamos antes com as versões anteriores do PHP. Este relatório visa explicar o mesmo caso.
Desafios de compatibilidade com WordPress e PHP8
Mostraremos algumas estratégias que você pode implantar para tornar uma base de código existente compatível com o PHP 8.
- Ferramentas de análise estática como PHPCompatibility para detectar problemas sintáticos.
- Testes automatizados para detectar problemas de tempo de execução.
- Teste manual para detectar problemas de tempo de execução.
Dependendo da cobertura do seu conjunto de testes e da proporção de mudanças sintáticas e tempo de execução, essas estratégias servem muito bem para corrigir a compatibilidade da base de código com uma nova versão do PHP (atualmente discutindo o PHP 8).
Verdadeiramente, no caso do PHP 8 e WordPress, existem alguns desafios adicionais que tornam difícil confiar nessas estratégias de acordo para garantir a perfeita compatibilidade do WordPress com PHP 8. Abaixo relataremos as estratégias que implantamos para WordPress e compartilhe os resultados.
Ferramentas de análise estática
Devido à natureza de algumas mudanças no PHP 8.0, os problemas que podem ser detectados usando a análise estática são limitados. Nessas circunstâncias, onde a análise estática procura ir além de seus potenciais tradicionais e planeja rastrear o valor de variáveis e constantes e tipo de tempo de execução, os resultados de tais varreduras certamente serão propensos a falsos positivos.
Além disso, o PHP Compatibility é a única ferramenta de análise estática destinada a encontrar problemas relacionados à compatibilidade entre versões do PHP.
Além da compatibilidade com PHP, outras ferramentas de análise estática relatam um escopo maior de problemas. Apreciar os resultados para detectar os problemas, que são relacionados à compatibilidade entre versões do PHP e realmente corretos, é bastante demorado e precisa de conhecimento profundo relacionado às ferramentas, especialmente sobre como configurá-las para a menor quantidade de ruído.
Simultaneamente, essas ferramentas estão em constante instabilidade, tentando continuar com as mudanças na versão do PHP e atualizando as possíveis varreduras. Portanto, podemos esperar que essas ferramentas detectem ainda mais problemas no futuro próximo.
Portanto, independentemente do que já foi e pode ser encontrado neste momento, as chances são de que essas ferramentas ainda encontrem mais problemas no futuro (próximo).
Digitalizando o WordPress com compatibilidade com PHP
“__destruct() não será mais chamado depois de die() em __construct()” é outro problema do PHP 8 encontrado pelo PHPCompatibility. Isso é perfeitamente detectado pelo scanner. No entanto, após uma análise mais aprofundada, descobriu-se que não é problemático neste caso.
Além disso, o PHPCompatibility detectou um problema no código usado pelo “Plugin/Theme editor”. As análises do código envolvido determinaram a existência de uma supervisão subjacente no código. No editor, o WordPress espera fazer uma análise mínima do código; no entanto, não leva em consideração o código PHP 5.3+.
Ao levar em consideração as mudanças relevantes no PHP8, essa supervisão agora está mais complexa para resolver. Executamos scans com PHPCompatibility com a versão desenvolvida, e os resultados, como esperávamos, foram muito diferentes do que obtivemos com as atualizações anteriores do PHP. Os problemas detectados pelo scanner são mantidos externamente.
Escaneando WordPress com Exakat
Falando sobre a última varredura pública que ocorreu em 16 de outubro, com base no tronco WP, Exakat relata 149.567 problemas no total.
O relatório de compatibilidade do PHP 8 nos mostra um total de 93 problemas. No entanto, está incompleto, pois um número de análise relevante para o PHP 8 não está incluído no relatório.
Embora esperemos que esses relatórios contenham um grande número de falsos positivos porque o WordPress não usa declarações de tipo e, portanto, os tipos são extrapolados do código encontrado e dos tipos mostrados em docblocks, esses problemas ainda devem ser examinados individualmente.
Não importa se apenas 1% dos problemas encontrados está certo, isso ainda diminuiria para ~450 erros, que ainda precisam ser tratados. Além disso, a grande quantidade de tempo necessária para eliminar os problemas autênticos dos falsos positivos.

Escaneando WordPress com PHPStan
As varreduras com PHPStan exigem um conjunto de regras totalmente personalizado para obter resultados utilizáveis remotamente e, ainda assim, eles provam estar repletos de alguns falsos positivos, tornando a saída inutilizável.
Nota: Não estamos criticando as ferramentas do PHPStan, mas é muito devido ao fato de que o WordPress dificilmente usa declarações de tipo, enquanto por outro lado, o PHPStan é principalmente inclinado a projetos que usam código moderno, não é?
Uma varredura inicial com as configurações mais básicas resultará em mais de 20.000 problemas. Uma varredura com o conjunto de regras altamente personalizado mencionado acima, direcionado especificamente a problemas relacionados ao PHP 8, ainda produz exatamente 580 problemas no nível 5 e 2.150 problemas potenciais adicionais no nível 7. Estes provavelmente conterão alguns falsos positivos e ainda produzirão 380 problemas mais no nível 8 com uma ressalva semelhante.
Um tíquete do Trac foi aberto recentemente para resolver uma lista de problemas com base em uma configuração desconhecida, mas totalmente direcionado a incompatibilidades de tipo de parâmetro passado (nível 5). O rascunho do PR está disponível para corrigir esses problemas.
Uma avaliação inicial deste PR indica que a maioria das correções propostas iria tipificar variáveis para o tipo esperado e ocultar problemas, não corrigindo-os de fato verificando corretamente. Isso leva a um comportamento inesperado no aplicativo caso essas alterações não sejam acompanhadas por testes de unidade rigorosos. Além disso, o tit provavelmente resulta em dificuldade crescente ao depurar erros mais adiante, com certeza.
Atualmente, não está confirmado se as correções propostas são garantidas ou se os problemas identificados devem ser observados como falsos positivos.
Teste
A análise estática pode ir tão longe por causa da natureza das trocas problemáticas no PHP8. Revisar e testar manualmente o software prova ser um trabalho tão meticuloso, e os humanos também são bastante propensos a ignorar as coisas quando há muito o que procurar.
Agora, falando sobre testes realizados por usuários finais, eles provam ser relativamente inúteis, pois isso normalmente resultará em “caminhos felizes” sendo testados. Se quisermos obter resultados mais confiáveis, precisamos de testes exploratórios e de regressão abrangentes.
Ter testes automatizados de alta qualidade e executá-los no PHP 8 é mais importante do que qualquer coisa. Isso oferecerá a indicação perfeita do problema do PHP 8.0 esperado.
A maioria dos geeks da tecnologia está empolgada com o PHP 8.0 e, certamente, as mudanças são enormes desta vez. todo mundo vai consumir algum tempo para entender a compatibilidade, configurações, benefícios etc. do PHP 8, e entre todas, uma das maiores perguntas que surgem é – “o WordPress já é compatível com PHP 8, e se não, então quais ações são precisos."
Bem, assim que o PHP 8 foi lançado, nosso tempo de especialista mergulhou no nível mais profundo de testes, e o resultado pode chocar qualquer um! sim, sabemos tudo agora e temos prazer em exibir nossos relatórios e resultados de testes.
Vamos seguir para Executando testes automatizados no PHP 8 agora.
Executando testes automatizados no PHP 8
O PHPUnit 9.3 é a primeira versão do PHPUnit oficialmente compatível com o PHP 8.0 e foi lançada em agosto de 2020. Bem, executar um conjunto de testes automatizado em PHP é difícil porque a ferramenta de fato para testes de unidade.
Obter um conjunto de testes automatizado para rodar no PHP 8 nos leva ao próximo buraco do coelho como a ferramenta de fato para realizar o teste de unidade no mundo PHP; O PHPUnit normalmente faz um grande lançamento a cada ano, com cada grande suporte para as versões anteriores do PHP. Ele apresenta mudanças importantes, mas como o PHPUnit 9.3 é oficialmente compatível com o PHP 8.0, como mencionamos acima, não há necessidade de se preocupar!
Sabemos que, no mínimo, o WordPress ainda suporta PHP 5.6. Para executar testes no PHP 8.0, qualquer suíte de testes relacionada ao WordPress precisa ser totalmente compatível com PHPUnit 5 até PHPUnit 9. Certamente, as ferramentas são construídas para ajudá-lo com isso; ainda consome esforço e tempo para implementar essas ferramentas para tornar um conjunto de testes compatível.
Obtendo os testes em execução no PHP8 para WordPress Core
Os testes para WP Core estão sendo aprovados e executados no PHP 8. Esses testes estão sendo conduzidos na versão instalada do compositor do PHPUnit 7.5. Embora o PHPUnit 9.3 seja a versão mais antiga do PHPUnit que é oficialmente compatível com o PHP 8.
Este último problema foi resolvido copiando um número selecionado de arquivos/classes do PHPUnit 9.3 para a suíte de testes do WordPress, excluindo as classes nativas do PHPUnit da geração de carregamento automático do Composer, suportando o uso de cópias do PHPUnit 9.3 na suíte de testes do WordPress. Isso funciona, por enquanto, no entanto, chamaríamos de uma solução hacky, e pode não ser sustentável no futuro, além da manutenção que pode precisar atualmente.
Por uma questão de qualidade dos testes, isso foi certamente baixo para começar, com verificação de tipo solto sendo utilizada na maioria dos casos.
Aprofundando, um tíquete Trac para resolver isso foi aberto em 2016. Considerando a aderência de tipo mais rígida em PHP, esse tíquete foi restaurado. Muito trabalho tem sido realizado para mitigar isso.
Enquanto escrevemos, existem cerca de 800 instâncias (676 assertEquals() adicionadas a 96 assertNotEquals()). Ainda utilizando verificação de tipo solto – abaixo de mais de 8.000 instâncias.
Em parte, as asserções de tipo solto que restaram são legítimas quando os objetos são comparados; em parte, estes certamente precisam ser abordados. No entanto, atualmente levaria a falhas de teste. Estes últimos sublinham deficiências quer nos testes, mas de forma mais esporádica, no código que está a ser testado.
Testando temas e plugins
Há apenas uma pequena porcentagem dos plugins disponíveis, os desenvolvidos profissionalmente e os mais populares e que possuem testes automatizados. De um modo geral, isso é preocupante, pois um site WordPress normal executa quase 19 ou 20 plugins, com certeza. Alguns sites rolam com ainda mais plugins! Ter testes automatizados para temas é ainda mais raro.
É um desafio permitir que esses conjuntos de testes sejam executados no PHP versão 8. E também antes que se possa obter informações sobre a compatibilidade de plugins e temas com o PHP 8.
No entanto, os plugins/temas que possuem são principalmente aqueles em que a quantidade mínima de problemas do PHP 8.0 pode ser esperada. Exclamamos isso porque tais temas/plugins usam um modelo de desenvolvimento profissional.
A maior causa de preocupação é a infinidade de testes e temas sem testes, pois eles são mais propensos a serem problemáticos durante a execução do PHP 8.
Para temas e plugins, que têm testes, existem basicamente dois tipos de testes que eles podem ou não ter no lugar certo:
- Testes unitários . Testes autônomos que “zombam” do WP para permitir o teste do código do plugin. Frameworks populares como BrainMonkey e Mockery são usados.
- Testes de integração . Agora, os testes de integração são onde o próprio WordPress carrega antes de executarmos o conjunto de testes, e ele usará o código WPcore e se integrará ao conjunto de testes WP.
Testes de integração
Sabemos que o WordPress decidiu manter o PHPUnit 7.5. O que isso significa?
Bem, para testes de integração de temas e plugins, eles também serão saltados para o PHPUnit 7.5 (máximo).
Temas e plugins terão que copiar o hack no WP Core para que seus testes de integração funcionem perfeitamente ou, alternativamente, eles terão que usar os arquivos no WP Core. No entanto, eles terão que criar um autoloader personalizado porque o mesmo hack de geração de autoload do Composer não pode ser usado.
Se os arquivos nativos do PHPUnit precisarem ser impedidos de carregar de qualquer maneira, esse autoloader personalizado terá que ser inicializado logo antes do arquivo de carregamento automático do Composer.
Testes de unidade
Para testes de unidade com a ajuda de Mockery ou BrainMonkey, PHPUnit > 8 é necessário, pois o framework Mockery disponível para PHPUnit 7.x não é compatível com PHP 8.0. Portanto, a comparabilidade dessas suítes de teste é obrigatória com PHPUnit 5 até 9, o que certamente adiciona outro desafio.
Como?
Diferentes versões do PHPUnit são necessárias para executar cada suíte de teste quando ambos os tipos de suítes de teste estão sendo usados. Para agravar esta circunstância, os plugins normalmente terão um arquivo composer.lock confirmado para garantir que suas dependências de tempo de execução estejam em uma determinada versão em que possam confiar e que seja totalmente compatível com o PHP 5.6.
Em certos momentos, esta última parte é imposta por meio de uma configuração de plataforma php 5.6 no arquivo composer.json. Isso também significa que suas dependências de desenvolvimento BrainMonkey, Mockery, PHPUnit também serão bloqueadas em uma versão compatível com PHP 5.6. agora, isso certamente impediria a execução de testes no PHP 8.0.
Você pode superar isso removendo a plataforma rapidamente, além de atualizar os arquivos composer.lock e composer.json. No entanto, isso torna a execução dos testes no PHP 8.0 mais envolvida, tanto na CI quanto localmente, para seus desenvolvedores.
A compatibilidade com PHP 8 parece um pouco complicada em grandes sites WordPress
Apenas investigando uma cadeia de mudanças no PHP 8, podemos confirmar que isso é propenso a causar grandes quebras em sites com o motivo pouco claro para essa quebra. Em certos momentos, o erro acontecerá em um lugar, mas é gerado por um tema ou plugin em um lugar diferente, e isso certamente tornaria esses problemas muito difíceis de depurar.
accuwebhosting.com é certamente um site WordPress mantido ativamente, e uma equipe dedicada de desenvolvedores profissionais o apoia. A grande maioria dos sites WordPress não tem esse luxo, e mitigar problemas de compatibilidade nesses sites será um desafio, com certeza.
Quanto tempo os desenvolvedores têm para atualizar?
O ciclo de vida de cada versão do PHP é de 2 anos, e os bugs são corrigidos nesta época. Mais um ano é adicionado durante o qual os problemas de segurança são corrigidos. O PHP 7.4 chegou em novembro de 2019. Era a versão final do PHP 7. Isso significa que os bugs no PHP 7.4 serão corrigidos até novembro de 2021. Os problemas de segurança serão corrigidos até novembro de 2022. Chegará ao seu “Fim de vida” naquele momento.
Portanto, a data limite é novembro de 2022: todo o código PHP precisa ser compatível com o PHP 8 a essa altura, ou há perigo de ficar preso em uma versão PHP potencialmente vulnerável.
Conclusão
O PHP 8 conterá inúmeras mudanças de última hora. Descrevemos uma boa variedade dessas mudanças em nosso relatório, aquelas que nossos especialistas assumem que terão um impacto mais forte no WordPress além do ecossistema WordPress mais amplo. Esses geralmente têm que lidar com avisos se tornando problemas. E vários erros são introduzidos, que podem ser difíceis de lidar. Você pode detectar uma porcentagem maior dessas alterações em tempo de execução.
Corrigir todos esses problemas de compatibilidade é uma tarefa enorme. Para conseguir isso, você precisa usar uma variedade de estratégias, desde a análise estática até os testes automatizados. Requer muito tempo + esforço.
Você deve ter o direito de ferramenta para conduzir tudo perfeitamente. Para projetos como o WordPress, que precisam suportar uma variedade de versões do PHP, várias complexidades extras são introduzidas no malabarismo com várias versões das ferramentas de análise, conforme discutimos acima.
Certamente, torna-se bastante difícil devido ao tempo de execução e às diferenças sintáticas entre o PHP 5 e 8 serem incrivelmente grandes.
Usar PHP 8 no WordPress é bom ou não? Na verdade não é o argumento aqui. A única conclusão aqui é – torna-se muito desafiador fazê-lo.
Além disso, consideramos a questão da cobertura e as dependências PHP do WordPress. Se você deseja detectar compatibilidade de maneira confiável, é necessária uma alta cobertura de teste. E falando em PHP 8, é ainda mais importante porque o número de problemas de compatibilidade é maior que o normal. Uma grande porcentagem deles pode ser detectada apenas em tempo de execução.
Então, o que aconselhamos?
Se forem detectados problemas, é necessária uma depuração extensa para encontrar a raiz do problema, não importa se é WordPress, Tema, Plugin ou está associado diretamente à compatibilidade com PHP.
A cobertura de teste é praticamente ausente para dependências e baixa. Portanto, é difícil exclamar qual é a compatibilidade do núcleo do WordPress com o PHP 8 em um sentido verdadeiro.
Por causa do PHP 8 se concentrar tão profundamente na tipagem estrita, o sistema de extensibilidade de tipo inseguro do WP se torna extremamente vulnerável a problemas, potencialmente levando a plugins gerando erros de tipo em outros plugins ou no próprio WP.
Colocamos isso em teste executando uma análise nos dados de erro no último mês. Como um site enorme, achamos que poderia dar uma forte indicação dos tipos de problemas que podemos esperar. Certamente, encontramos vários avisos que evoluirão para erros com o PHP 8.
Nós preferimos fazer uma nota final aqui. O WordPress não é a única base de código legada disponível. Também não é o único projeto que visa suportar uma enorme variedade de versões do PHP. As informações neste artigo podem se aplicar bem a outros projetos também.
O objetivo principal deste artigo da Accuweb é informar e fazer uma visão geral dos desafios e problemas relacionados à compatibilidade do PHP 8 no WP. Esperamos que sirva perfeitamente a esse propósito.