{"id":230431,"date":"2022-11-26T11:32:00","date_gmt":"2022-11-26T08:32:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230431"},"modified":"2022-11-09T22:21:49","modified_gmt":"2022-11-09T19:21:49","slug":"trate-graciosamente-o-suporte-a-versao-php-no-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/trate-graciosamente-o-suporte-a-versao-php-no-wordpress\/","title":{"rendered":"Trate graciosamente o suporte \u00e0 vers\u00e3o PHP no WordPress"},"content":{"rendered":"\n<p>Desde que estou trabalhando com o WordPress, a conversa (e eu uso esse termo vagamente) sobre quais vers\u00f5es do PHP ele deve ou n\u00e3o suportar est\u00e1 em andamento.<\/p>\n<ul>\n<li>O resumo disso \u00e9 que alguns o veem como um aplicativo t\u00e3o grande e popular quanto o WordPress, que alimenta grande parte dos sites baseados em CMS e deve ser capaz de usar sua influ\u00eancia para promover solu\u00e7\u00f5es mais inovadoras.<\/li>\n<li>Outros v\u00eaem que as pessoas n\u00e3o costumam atualizar, est\u00e3o em hosts com or\u00e7amento limitado, ou simplesmente n\u00e3o se importam (muito menos se preocupam em saber) qual vers\u00e3o do PHP eles est\u00e3o executando.<\/li>\n<\/ul>\n<p>Esses dois pontos poderiam render um post e coment\u00e1rios por dias, mas n\u00e3o estou interessado nisso. Como <strong><a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">minha equipe e eu<\/a><\/strong> somos o neg\u00f3cio de criar solu\u00e7\u00f5es personalizadas para outras pessoas, temos a flexibilidade de fazer um balan\u00e7o de onde os usu\u00e1rios hospedam seu site ou aplicativo, implant\u00e1-lo e aproveitar os recursos do PHP oferecidos por seus hosts.<\/p>\n<p>H\u00e1, no entanto, momentos em que encontrei algumas pessoas executando vers\u00f5es do PHP t\u00e3o baixas quanto 5.3.<\/p>\n<p>E da\u00ed?<\/p>\n<p>Primeiro, <strong><a href=\"https:\/\/wordpress.org\/about\/requirements\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">a p\u00e1gina de requisitos do WordPress<\/a><\/strong> menciona especificamente isso:<\/p>\n<blockquote>\n<p>Se voc\u00ea estiver em um ambiente legado onde voc\u00ea s\u00f3 tem vers\u00f5es mais antigas do PHP ou MySQL, o WordPress tamb\u00e9m funciona com PHP 5.2.4+ e MySQL 5.0+, mas essas vers\u00f5es chegaram ao fim da vida \u00fatil oficial.<\/p>\n<\/blockquote>\n<p>Ent\u00e3o, para ser claro, ele roda em vers\u00f5es mais antigas do PHP, mas, como desenvolvedores, estaremos severamente limitados pelo que podemos fazer com a linguagem. E, como a p\u00e1gina menciona, as implica\u00e7\u00f5es de seguran\u00e7a e o suporte de &#8220;fim de vida&quot; da vers\u00e3o do idioma n\u00e3o devem ser ignorados.<\/p>\n<p>Sempre que trabalho com um plug-in ou algo que ser\u00e1 executado no WordPress e sei que ter\u00e1 que ser executado em v\u00e1rios hosts, forne\u00e7o o m\u00ednimo de suporte. Isso geralmente PHP 5.6.20.<\/p>\n<p>Se o ambiente no qual o projeto ser\u00e1 executado n\u00e3o suportar isso, avisarei e impedirei que o projeto seja executado. No contexto de um plug-in, provavelmente \u00e9 melhor conectar-se \u00e0 fun\u00e7\u00e3o register_activation_hook.<\/p>\n<p>Para fazer isso, voc\u00ea pode escrever algo <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/eab44952ef0add72eafab04332f9ef34#file-00-php-version-support-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">assim:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\nregister_activation_hook(__FILE__, __NAMESPACE__. 'acme_activate');\n\/**\n * Verifies that the user is running the proper version of WordPress for the\n * plugin to execute; otherwise, displays an error message and prevents the\n * plugin from being activated.\n *\/\nfunction acme_activate()\n{\n    if (version_compare(PHP_VERSION, '5.6.20', '&lt;')) {\n        wp_die(\n            sprintf(\n                'Acme requires PHP 5.6.20 or higher.\n                Your WordPress site is using PHP %s. Please contact your hosting\n                provider and ask that they upgrade the version of PHP on which\n                your installation of WordPress is running. Click back in your\n                browser to your WordPress dashboard.',\n                PHP_VERSION) );\n    }\n}<\/code><\/pre>\n<p>Concedido, \u00e9 simples, e a tela usa o estilo padr\u00e3o wp_die, mas tamb\u00e9m funciona. Se voc\u00ea tiver mais experi\u00eancia ou tempo, tamb\u00e9m \u00e9 poss\u00edvel executar as verifica\u00e7\u00f5es de forma um pouco diferente e fornecer seu pr\u00f3prio estilo.<\/p>\n<p>O objetivo deste post n\u00e3o \u00e9 como fazer isso. Em vez disso, os pontos s\u00e3o:<\/p>\n<ul>\n<li>determinar qual vers\u00e3o do PHP voc\u00ea vai suportar,<\/li>\n<li>compare a vers\u00e3o do PHP em execu\u00e7\u00e3o no servidor,<\/li>\n<li>renderizar uma mensagem se a vers\u00e3o do PHP no servidor for menor do que a que voc\u00ea suportar\u00e1,<\/li>\n<li>sair graciosamente.<\/li>\n<\/ul>\n<p>Como voc\u00ea vai renderizar isso depende de voc\u00ea, mas a ess\u00eancia do c\u00f3digo acima deve ser suficiente para voc\u00ea come\u00e7ar.<\/p>\n<h3>Notas Adicionais<\/h3>\n<ul>\n<li><strong><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_die\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_the<\/a><\/strong><\/li>\n<li><a href=\"https:\/\/php.net\/manual\/en\/function.version-compare.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">version_compare<\/a><\/li>\n<li><strong><a href=\"https:\/\/php.net\/manual\/en\/reserved.constants.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP_VERSION<\/a><\/strong><\/li>\n<li><strong><a href=\"https:\/\/php.net\/manual\/en\/function.sprintf.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">sprintf<\/a><\/strong><\/li>\n<\/ul>\n<p>E se voc\u00ea realmente quiser se aprofundar no manuseio de strings em PHP, recomendo o post <strong><a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">de Carl sobre como<\/a><\/strong> <strong><a href=\"https:\/\/carlalexander.ca\/php-string-formatting\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">lidar com strings em PHP<\/a><\/strong>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As vers\u00f5es de suporte do PHP no WordPress podem variar de acordo com o projeto. Aqui est\u00e1 uma maneira de lidar com isso dentro de um plugin.<\/p>\n","protected":false},"author":1,"featured_media":164297,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[722,920,806,846,867],"tags":[1170],"class_list":["post-230431","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvedor","category-outro","category-php-8","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=230431"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/230431\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/164297"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=230431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=230431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=230431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}