{"id":230039,"date":"2022-11-26T11:45:00","date_gmt":"2022-11-26T08:45:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230039"},"modified":"2022-11-09T19:49:16","modified_gmt":"2022-11-09T16:49:16","slug":"manejar-con-gracia-el-soporte-de-la-version-de-php-en-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/manejar-con-gracia-el-soporte-de-la-version-de-php-en-wordpress\/","title":{"rendered":"Manejar con gracia el soporte de la versi\u00f3n de PHP en WordPress"},"content":{"rendered":"\n<p>Desde que he estado trabajando con WordPress, la conversaci\u00f3n (y uso este t\u00e9rmino libremente) sobre qu\u00e9 versiones de PHP deber\u00eda o no admitir ha estado en curso.<\/p>\n<ul>\n<li>En pocas palabras, algunos lo ven como una aplicaci\u00f3n tan grande y popular como WordPress que potencia gran parte de los sitios web basados \u200b\u200ben CMS y deber\u00eda poder usar su influencia para fomentar soluciones m\u00e1s innovadoras.<\/li>\n<li>Otros ven que las personas no actualizan a menudo, tienen hosts econ\u00f3micos o simplemente no les importa (y mucho menos se molestan en saber) qu\u00e9 versi\u00f3n de PHP est\u00e1n ejecutando.<\/li>\n<\/ul>\n<p>Estos dos puntos podr\u00edan generar una publicaci\u00f3n y comentarios durante d\u00edas, pero eso no me interesa. Debido a que <strong><a href=\"https:\/\/pressware.co\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">mi equipo y yo<\/a><\/strong> nos dedicamos a crear soluciones personalizadas para otros, tenemos la flexibilidad de hacer un balance de d\u00f3nde los usuarios alojan su sitio o aplicaci\u00f3n, implementarlo y aprovechar las caracter\u00edsticas de PHP que ofrecen sus hosts.<\/p>\n<p>Sin embargo, hay momentos en los que me he encontrado con algunas personas que ejecutan versiones de PHP tan bajas como 5.3.<\/p>\n<p>\u00bfEntonces, qu\u00e9?<\/p>\n<p>Primero, <strong><a href=\"https:\/\/wordpress.org\/about\/requirements\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">la p\u00e1gina de requisitos de WordPress<\/a><\/strong> menciona espec\u00edficamente esto:<\/p>\n<blockquote>\n<p>Si se encuentra en un entorno heredado donde solo tiene versiones anteriores de PHP o MySQL, WordPress tambi\u00e9n funciona con PHP 5.2.4+ y MySQL 5.0+, pero estas versiones han llegado al final de su vida \u00fatil oficial.<\/p>\n<\/blockquote>\n<p>Entonces, para ser claros, se ejecuta en versiones anteriores de PHP pero, como desarrolladores, estaremos severamente limitados por lo que podemos hacer con el lenguaje. Y, como se menciona en la p\u00e1gina, no se deben ignorar las implicaciones de seguridad y el soporte de &quot;final de vida&quot; de la versi\u00f3n del lenguaje.<\/p>\n<p>Cada vez que trabajo con un complemento o algo que se ejecutar\u00e1 en WordPress y s\u00e9 que tendr\u00e1 que ejecutarse en una variedad de hosts, brindo un m\u00ednimo de soporte. Esto suele ser PHP 5.6.20.<\/p>\n<p>Si el entorno en el que se ejecutar\u00e1 el proyecto no lo admite, lo notificar\u00e9 y evitar\u00e9 que se ejecute el proyecto. En el contexto de un complemento, probablemente sea mejor conectarse a la funci\u00f3n register_activation_hook.<\/p>\n<p>Para hacer eso, puedes escribir 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\">como esto:<\/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>De acuerdo, es simple y la pantalla usa el estilo wp_die est\u00e1ndar, pero tambi\u00e9n funciona. Si tiene m\u00e1s experiencia o tiempo, tambi\u00e9n es posible ejecutar las comprobaciones de forma un poco diferente y proporcionar su propio estilo.<\/p>\n<p>El prop\u00f3sito de esta publicaci\u00f3n no es c\u00f3mo hacer eso. En cambio, los puntos son:<\/p>\n<ul>\n<li>determinar qu\u00e9 versi\u00f3n de PHP va a soportar,<\/li>\n<li>comparar la versi\u00f3n de PHP que se ejecuta en el servidor,<\/li>\n<li>mostrar un mensaje si la versi\u00f3n de PHP en el servidor es inferior a la que admitir\u00e1,<\/li>\n<li>salir con gracia.<\/li>\n<\/ul>\n<p>La forma en que termines representando esto depende de ti, pero la esencia del c\u00f3digo anterior deber\u00eda ser suficiente para comenzar.<\/p>\n<h3>Notas adicionales<\/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_el<\/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\">versi\u00f3n_comparar<\/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_VERSI\u00d3N<\/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\">correr<\/a><\/strong><\/li>\n<\/ul>\n<p>Y si realmente desea profundizar en el manejo de cadenas en PHP, le recomiendo la publicaci\u00f3n <strong><a href=\"https:\/\/twitter.com\/twigpress\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">de Carl<\/a><\/strong> sobre el <strong><a href=\"https:\/\/carlalexander.ca\/php-string-formatting\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">manejo de cadenas en PHP<\/a><\/strong>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Las versiones de soporte de PHP en WordPress pueden variar seg\u00fan el proyecto. Aqu\u00ed hay una forma de manejarlo dentro de un complemento.<\/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":[716,914,800,840,861],"tags":[1172],"class_list":["post-230039","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollador","category-otro","category-php-2","category-tutoriales","category-wordpress-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/230039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=230039"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/230039\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/164297"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=230039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=230039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=230039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}