{"id":12756,"date":"2026-10-22T16:04:57","date_gmt":"2026-10-22T19:04:57","guid":{"rendered":"https:\/\/blog.umbler.com\/?p=12756"},"modified":"2026-10-22T16:04:59","modified_gmt":"2026-10-22T19:04:59","slug":"php-8-5-na-umbler-mais-rapido-e-mais-seguro","status":"publish","type":"post","link":"https:\/\/blog.umbler.com\/br\/php-8-5-na-umbler-mais-rapido-e-mais-seguro\/","title":{"rendered":"PHP 8.5 na Umbler: mais r\u00e1pido e mais seguro"},"content":{"rendered":"\n<p>O PHP 8.5 j\u00e1 est\u00e1 dispon\u00edvel na <a href=\"https:\/\/blog.umbler.com\/br\/umbler-no-premio-reclame-aqui-2026\/\">Umbler<\/a>. Voc\u00ea pode ativ\u00e1-lo no seu site hoje mesmo, direto pelo painel, sem custo adicional.<\/p>\n\n\n\n<p>Lan\u00e7ado oficialmente em 20 de novembro de 2025, o PHP 8.5 passou pelos primeiros meses de corre\u00e7\u00f5es e amadureceu. O WordPress j\u00e1 consta como totalmente compat\u00edvel com ele, ent\u00e3o este \u00e9 o momento certo para trazer atualizar a vers\u00e3o do seu site dentro da nossa plataforma.<\/p>\n\n\n\n<p>Neste post, mostramos o que muda na pr\u00e1tica: o que o PHP 8.5 traz de desempenho e <a href=\"https:\/\/blog.umbler.com\/br\/porque-a-api-oficial-do-whatsapp-e-mais-segura\/\">seguran\u00e7a<\/a> para o seu site, as novidades de sintaxe que v\u00e3o facilitar a vida de quem programa e como fazer a troca com tranquilidade.<\/p>\n\n\n\n<p><strong>Resumo r\u00e1pido<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Para quem tem site:<\/strong> OPcache sempre presente, melhor controle de mem\u00f3ria e um ciclo de suporte que vai at\u00e9 o fim de 2029.<\/li>\n\n\n\n<li><strong>Para quem programa:<\/strong> operador pipe (<code>|><\/code>), <code>clone()<\/code> com altera\u00e7\u00e3o de propriedades, <code>array_first()<\/code> \/ <code>array_last()<\/code>, atributo <code>#[\\NoDiscard]<\/code> e erros fatais com backtrace.<\/li>\n\n\n\n<li><strong>Para quem usa WordPress:<\/strong> suporte oficial do core a partir do WordPress 6.9.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"performance-menos-cpu-e-mem\u00f3ria-por-visita\">Performance: menos CPU e mem\u00f3ria por visita<\/h2>\n\n\n\n<p>O PHP 8.5 n\u00e3o \u00e9 uma vers\u00e3o de &#8220;salto de velocidade&#8221; como foi o PHP 7. O ganho est\u00e1 em otimiza\u00e7\u00f5es que reduzem trabalho repetido do servidor e deixam o consumo de recursos mais previs\u00edvel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"opcache-agora-faz-parte-do-php\">OPcache agora faz parte do PHP<\/h3>\n\n\n\n<p>O OPcache guarda na mem\u00f3ria o c\u00f3digo PHP j\u00e1 compilado, para que o servidor n\u00e3o precise reler e recompilar os arquivos a cada visita. No PHP 8.5, ele passou a ser embutido no pr\u00f3prio bin\u00e1rio e est\u00e1 sempre carregado.<\/p>\n\n\n\n<p>Na pr\u00e1tica, isso elimina o risco de um ambiente rodar sem cache de c\u00f3digo por erro de configura\u00e7\u00e3o. Para um WordPress, que carrega centenas de arquivos PHP do core, do tema e dos plugins em cada p\u00e1gina, isso significa menos uso de CPU por requisi\u00e7\u00e3o.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"conex\u00f5es-externas-reaproveitadas\">Conex\u00f5es externas reaproveitadas<\/h3>\n\n\n\n<p>A nova fun\u00e7\u00e3o <code>curl_share_init_persistent()<\/code> permite que conex\u00f5es e consultas de DNS sejam reaproveitadas entre requisi\u00e7\u00f5es diferentes. Antes, cada visita abria tudo do zero.<\/p>\n\n\n\n<p>Isso beneficia sites que conversam com servi\u00e7os externos o tempo todo: gateways de pagamento, c\u00e1lculo de frete, CRMs e APIs de marketing. O ganho aparece conforme plugins e bibliotecas adotarem o recurso.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mem\u00f3ria-sob-controle\">Mem\u00f3ria sob controle<\/h3>\n\n\n\n<p>A nova diretiva <code>max_memory_limit<\/code> define um teto que nenhum script consegue ultrapassar, mesmo que tente aumentar o pr\u00f3prio limite com <code>ini_set()<\/code>. Um plugin mal escrito n\u00e3o consegue mais pedir mem\u00f3ria ilimitada e derrubar o desempenho do site inteiro.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"o-que-esperar-em-n\u00fameros\">O que esperar em n\u00fameros<\/h3>\n\n\n\n<p>Testes independentes com WordPress (sem cache) mostram o PHP 8.5 entre os mais r\u00e1pidos, empatado com o 8.4:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Vers\u00e3o do PHP<\/th><th>Requisi\u00e7\u00f5es por segundo<\/th><\/tr><tr><td>8.5<\/td><td>148,30<\/td><\/tr><tr><td>8.4<\/td><td>148,22<\/td><\/tr><tr><td>8.3<\/td><td>142,75<\/td><\/tr><tr><td>8.2<\/td><td>146,09<\/td><\/tr><tr><td>7.4<\/td><td>139,06<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Fonte: <a href=\"https:\/\/tideways.com\/profiler\/blog\/php-benchmarks-8-5-vs-8-4-8-3-and-7-4\" target=\"_blank\" rel=\"noreferrer noopener\">Tideways<\/a> <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"seguran\u00e7a-e-estabilidade-um-php-mais-rigoroso\">Seguran\u00e7a e estabilidade: um PHP mais rigoroso<\/h2>\n\n\n\n<p>O PHP 8.5 recebe corre\u00e7\u00f5es de bugs at\u00e9 o fim de 2027 e corre\u00e7\u00f5es de seguran\u00e7a at\u00e9 o fim de 2029. \u00c9 a vers\u00e3o com o maior horizonte de suporte dispon\u00edvel hoje, e isso por si s\u00f3 j\u00e1 \u00e9 um ganho de seguran\u00e7a.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"tratamento-de-urls-nativo-e-padronizado\">Tratamento de URLs nativo e padronizado<\/h3>\n\n\n\n<p>A nova extens\u00e3o URI interpreta e normaliza endere\u00e7os seguindo os padr\u00f5es RFC 3986 e WHATWG, os mesmos usados pelos navegadores. Ela vem sempre ativa e \u00e9 baseada nas bibliotecas uriparser e Lexbor.<\/p>\n\n\n\n<p>A antiga <code>parse_url()<\/code> tinha comportamentos inconsistentes com URLs malformadas, uma porta de entrada cl\u00e1ssica para falhas de redirecionamento aberto e SSRF. Com a nova API, valida\u00e7\u00f5es de links, redirecionamentos e webhooks ficam mais confi\u00e1veis.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"erros-mais-f\u00e1ceis-de-investigar\">Erros mais f\u00e1ceis de investigar<\/h3>\n\n\n\n<p>Erros fatais, como estourar o tempo m\u00e1ximo de execu\u00e7\u00e3o, agora v\u00eam com backtrace: a lista de fun\u00e7\u00f5es que levaram at\u00e9 o erro. Achar o plugin culpado por uma tela branca deixa de ser adivinha\u00e7\u00e3o.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"menos-espa\u00e7o-para-c\u00f3digo-perigoso\">Menos espa\u00e7o para c\u00f3digo perigoso<\/h3>\n\n\n\n<p>O PHP 8.5 marca como obsoletos recursos que costumavam esconder problemas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>O operador de crase (<code>`comando`<\/code>) como atalho para <code>shell_exec()<\/code>, que facilitava execu\u00e7\u00e3o de comandos no servidor sem ningu\u00e9m perceber.<\/li>\n\n\n\n<li>O uso de <code>null<\/code> como \u00edndice de array, fonte comum de bugs silenciosos.<\/li>\n\n\n\n<li>Convers\u00f5es de tipos que perdem <a href=\"https:\/\/blog.umbler.com\/br\/bi-para-whatsapp\/\">dados<\/a> agora geram aviso, como transformar em inteiro um n\u00famero decimal grande demais.<\/li>\n<\/ul>\n\n\n\n<p>Al\u00e9m disso, <code>setcookie()<\/code> passou a aceitar o atributo <code>partitioned<\/code>, que ajuda a manter cookies de terceiros isolados por site, alinhado \u00e0s novas regras de <a href=\"https:\/\/blog.umbler.com\/br\/seguranca-e-privacidade-no-atendimento-com-ia\/\">privacidade<\/a> dos navegadores.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"para-quem-programa-c\u00f3digo-mais-curto-e-mais-claro\">Para quem programa: c\u00f3digo mais curto e mais claro<\/h2>\n\n\n\n<p>As novidades de sintaxe do PHP 8.5 atacam tarefas do dia a dia: encadear transforma\u00e7\u00f5es, copiar objetos imut\u00e1veis e pegar itens de arrays.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"operador-pipe\">Operador pipe (<code>|&gt;<\/code>)<\/h3>\n\n\n\n<p>O pipe passa o resultado de uma fun\u00e7\u00e3o direto para a pr\u00f3xima, da esquerda para a direita. Acabam as chamadas aninhadas que precisam ser lidas de dentro para fora.<\/p>\n\n\n\n<p>Antes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$slug = strtolower(\n    str_replace('.', '',\n        str_replace(' ', '-', trim($titulo))\n    )\n);<\/code><\/pre>\n\n\n\n<p>No PHP 8.5:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$slug = $titulo\n    |&gt; trim(...)\n    |&gt; (fn($s) =&gt; str_replace(' ', '-', $s))\n    |&gt; (fn($s) =&gt; str_replace('.', '', $s))\n    |&gt; strtolower(...);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"clone-com-altera\u00e7\u00e3o-de-propriedades\">Clone com altera\u00e7\u00e3o de propriedades<\/h3>\n\n\n\n<p>Agora d\u00e1 para clonar um objeto e mudar propriedades no mesmo passo, passando um array para <code>clone()<\/code>. Isso simplifica muito o padr\u00e3o \u201cwith-er\u201d em classes <code>readonly<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>readonly class Cor\n{\n    public function __construct(\n        public int $r,\n        public int $g,\n        public int $b,\n        public int $alpha = 255,\n    ) {}\n\n    public function comAlpha(int $alpha): self\n    {\n        return clone($this, &#91;'alpha' =&gt; $alpha]);\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"arrayfirst-e-arraylast\"><code>array_first()<\/code> e <code>array_last()<\/code><\/h3>\n\n\n\n<p>Duas fun\u00e7\u00f5es que faltavam h\u00e1 anos. Retornam o primeiro ou o \u00faltimo valor do array, ou <code>null<\/code> se ele estiver vazio.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Antes\n$ultimoPedido = $pedidos === &#91;] ? null : $pedidos&#91;array_key_last($pedidos)];\n\n\/\/ PHP 8.5\n$ultimoPedido = array_last($pedidos);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"atributo-nodiscard\">Atributo <code>#[\\NoDiscard]<\/code><\/h3>\n\n\n\n<p>Marca fun\u00e7\u00f5es cujo retorno n\u00e3o pode ser ignorado. Se algu\u00e9m chamar a fun\u00e7\u00e3o e descartar o resultado, o PHP emite um aviso. Para ignorar de prop\u00f3sito, basta usar o cast <code>(void)<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#&#91;\\NoDiscard]\nfunction salvarConfiguracoes(array $dados): bool { \/* ... *\/ }\n\nsalvarConfiguracoes($dados);         \/\/ Aviso: retorno ignorado\n(void) salvarConfiguracoes($dados);  \/\/ Ignorado de prop\u00f3sito, sem aviso<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"outras-melhorias-que-valem-conhecer\">Outras melhorias que valem conhecer<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Closures em express\u00f5es constantes:<\/strong> fun\u00e7\u00f5es an\u00f4nimas est\u00e1ticas podem ser usadas em par\u00e2metros de atributos, valores padr\u00e3o e constantes.<\/li>\n\n\n\n<li><strong><code>Closure::getCurrent()<\/code>:<\/strong> facilita recurs\u00e3o dentro de fun\u00e7\u00f5es an\u00f4nimas.<\/li>\n\n\n\n<li><strong>Propriedades <code>final<\/code> na promo\u00e7\u00e3o de construtor<\/strong> e <strong>visibilidade assim\u00e9trica em propriedades est\u00e1ticas.<\/strong><\/li>\n\n\n\n<li><strong><code>#[\\Override]<\/code> em propriedades<\/strong> e <strong><code>#[\\Deprecated]<\/code> em traits e constantes.<\/strong><\/li>\n\n\n\n<li><strong><code>get_error_handler()<\/code> e <code>get_exception_handler()<\/code>:<\/strong> consultam o handler ativo sem gambiarras.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wordpress-e-php-85-compat\u00edveis-mas-teste-antes\">WordPress e PHP 8.5: compat\u00edveis, mas teste antes<\/h2>\n\n\n\n<p>O core do WordPress \u00e9 oficialmente compat\u00edvel com o PHP 8.5 desde a vers\u00e3o 6.9. Em maio de 2026, a equipe do WordPress retirou o selo de \u201cbeta\u201d e passou a documentar o suporte como completo nas vers\u00f5es 6.9 e 7.0.<\/p>\n\n\n\n<p>O ponto de aten\u00e7\u00e3o est\u00e1 nos temas e plugins, principalmente os antigos ou sem atualiza\u00e7\u00f5es recentes. Antes de trocar a vers\u00e3o em produ\u00e7\u00e3o, siga este checklist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Atualize o WordPress para a vers\u00e3o 6.9 ou superior.<\/li>\n\n\n\n<li>Atualize todos os plugins e temas.<\/li>\n\n\n\n<li>Confira na p\u00e1gina de cada plugin se ele foi testado com PHP 8.5 ou se recebeu atualiza\u00e7\u00e3o nos \u00faltimos meses.<\/li>\n\n\n\n<li>Fa\u00e7a um backup completo do site e do banco de dados.<\/li>\n\n\n\n<li>Ative o PHP 8.5 e navegue pelas p\u00e1ginas principais: home, posts, formul\u00e1rios, carrinho e checkout.<\/li>\n\n\n\n<li>Verifique o log de erros. Avisos de \u201cdeprecated\u201d n\u00e3o derrubam o site, mas indicam o que precisa ser corrigido.<\/li>\n<\/ul>\n\n\n\n<p>Se algo der errado, \u00e9 s\u00f3 voltar para a vers\u00e3o anterior pelo painel. A troca \u00e9 revers\u00edvel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"como-ativar-o-php-85-na-umbler\">Como ativar o PHP 8.5 na Umbler<\/h2>\n\n\n\n<p>A troca leva menos de um minuto e n\u00e3o exige mexer em arquivos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Acesse o painel da Umbler e selecione o site.<\/li>\n\n\n\n<li>Escolha <strong>PHP 8.5<\/strong> na lista de vers\u00f5es.<\/li>\n\n\n\n<li>Acesse o site e o painel do WordPress para validar que est\u00e1 tudo funcionando.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"726\" height=\"572\" src=\"https:\/\/blog.umbler.com\/wp-content\/uploads\/2026\/10\/image.png\" alt=\"\" class=\"wp-image-12760\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"vale-a-pena-atualizar\">Vale a pena atualizar?<\/h2>\n\n\n\n<p>Sim. O PHP 8.5 entrega uma base mais segura, com consumo de recursos mais previs\u00edvel, suporte garantido at\u00e9 2029 e um conjunto de recursos que deixa o c\u00f3digo mais limpo. Para quem ainda est\u00e1 em vers\u00f5es antigas, o ganho de desempenho tamb\u00e9m \u00e9 real.<\/p>\n\n\n\n<p>Ative o PHP 8.5 no seu site hoje e, se tiver qualquer d\u00favida durante a troca, nosso time de suporte est\u00e1 pronto para ajudar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"fontes\">Fontes<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.php.net\/releases\/8.5\/en.php\" target=\"_blank\" rel=\"noreferrer noopener\">An\u00fancio oficial do PHP 8.5 (php.net)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2025\/11\/21\/php-8-5-support-in-wordpress-6-9\/\" target=\"_blank\" rel=\"noreferrer noopener\">PHP 8.5 support in WordPress 6.9 (Make WordPress Core)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2026\/05\/22\/php-support-clarification-2026\/\" target=\"_blank\" rel=\"noreferrer noopener\">PHP support clarification, spring 2026 edition (Make WordPress Core)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/kinsta.com\/blog\/php-benchmarks\/\" target=\"_blank\" rel=\"noreferrer noopener\">PHP 8.5 benchmarks (Kinsta)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/tideways.com\/profiler\/blog\/php-benchmarks-8-5-vs-8-4-8-3-and-7-4\" target=\"_blank\" rel=\"noreferrer noopener\">PHP Benchmarks: 8.5 vs 8.4, 8.3 and 7.4 (Tideways)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/php.watch\/versions\/8.5\/max_memory_limit\" target=\"_blank\" rel=\"noreferrer noopener\">max_memory_limit (PHP.Watch)<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O PHP 8.5 j\u00e1 est\u00e1 dispon\u00edvel na Umbler. Voc\u00ea pode ativ\u00e1-lo no seu site hoje mesmo, direto pelo painel, sem custo adicional. Lan\u00e7ado oficialmente em 20 de novembro de 2025, o PHP 8.5 passou pelos primeiros meses de corre\u00e7\u00f5es e amadureceu. O WordPress j\u00e1 consta como totalmente compat\u00edvel com ele, ent\u00e3o este \u00e9 o momento [&hellip;]<\/p>\n","protected":false},"author":59,"featured_media":12774,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-12756","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nao-categorizado"],"_links":{"self":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/12756"}],"collection":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/users\/59"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/comments?post=12756"}],"version-history":[{"count":0,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/posts\/12756\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media\/12774"}],"wp:attachment":[{"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/media?parent=12756"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/categories?post=12756"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.umbler.com\/br\/wp-json\/wp\/v2\/tags?post=12756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}