{"id":63694,"date":"2023-03-07T11:39:13","date_gmt":"2023-03-07T10:39:13","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=63694&#038;preview=true&#038;preview_id=63694"},"modified":"2023-08-23T11:37:23","modified_gmt":"2023-08-23T09:37:23","slug":"cambiar-a-php-8","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/","title":{"rendered":"Cambiar a PHP 8.x en Cuatro Pasos &#8211; Entrevista con Juliette Reinders Folmer"},"content":{"rendered":"<p>Actualizar un sitio, plugin o tema de WordPress a una nueva versi\u00f3n de PHP es una tarea que se repite con regularidad. Pero, \u00bfc\u00f3mo hacerlo de la forma m\u00e1s eficiente posible? \u00bfC\u00f3mo sabes que no pasar\u00e1s nada por alto? \u00bfExiste una hoja de ruta para ello?<\/p>\n<p>En este art\u00edculo, abordaremos estas preguntas (y otras) y veremos qu\u00e9 implica una transici\u00f3n sin problemas a PHP 8.x para tu sitio, plugin o tema de WordPress, incluida una hoja de ruta.<\/p>\n<p>Lo haremos bas\u00e1ndonos en una entrevista que hicimos a la experta en PHP Juliette Reinders Folmer. Dedica la mayor parte de su vida diaria a la programaci\u00f3n y todo lo que la rodea, centr\u00e1ndose principalmente en proyectos de c\u00f3digo abierto, incluido WordPress.<\/p>\n<p>\u00bfT\u00fa tambi\u00e9n est\u00e1s preparado para hacer el cambio sin problemas? \u00bfTienes curiosidad por conocer nuestro plan paso a paso? Entonces, \u00a1manos a la obra!<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>PHP 8.x &#8211; Qu\u00e9 ha Cambiado<\/h2>\n<p>Para tener una visi\u00f3n general de los cambios, te recomendamos los siguientes art\u00edculos:<\/p>\n<ul>\n<li>Notas de la versi\u00f3n para PHP <a href=\"https:\/\/www.php.net\/releases\/8.0\/en.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.0<\/a>\u00a0y <a href=\"https:\/\/www.php.net\/releases\/8.1\/en.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.1<\/a><\/li>\n<li>Gu\u00eda de migraci\u00f3n para <a href=\"https:\/\/www.php.net\/manual\/en\/migration80.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.0<\/a> y <a href=\"https:\/\/www.php.net\/manual\/en\/migration81.php\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 8.1<\/a><\/li>\n<li><a href=\"https:\/\/make.wordpress.org\/core\/2020\/11\/23\/wordpress-and-php-8-0\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress y PHP 8.0<\/a> y <a href=\"https:\/\/make.wordpress.org\/core\/2022\/01\/10\/wordpress-5-9-and-php-8-0-8-1\/\" target=\"_blank\" rel=\"noopener noreferrer\">estado actual<\/a><\/li>\n<li><a href=\"https:\/\/kinsta.com\/es\/blog\/php-8\/\">Novedades en PHP 8.0<\/a> y <a href=\"https:\/\/kinsta.com\/es\/blog\/php-8-1\/\">PHP 8.1<\/a><\/li>\n<li><a href=\"https:\/\/kinsta.com\/es\/blog\/php-8-2\/\">Novedades en PHP 8.2<\/a> y <a href=\"https:\/\/www.php.net\/manual\/en\/migration82.php\">gu\u00eda de migraci\u00f3n a PHP 8.2<\/a>.<\/li>\n<\/ul>\n<p>Despu\u00e9s de leer estos art\u00edculos, estar\u00e1s completamente al d\u00eda de lo que ha cambiado en PHP 8.x y de lo que necesitas hacer para que tus proyectos PHP funcionen sin problemas.<\/p>\n<p>Si no est\u00e1s seguro de cu\u00e1l es la mejor manera de empezar, no hay problema. En la conversaci\u00f3n con Juliette, hablaremos de esto en detalle, y en este art\u00edculo te explicaremos de la forma m\u00e1s completa posible c\u00f3mo puedes cambiar a PHP 8.x.<\/p>\n<p>Tambi\u00e9n te explicaremos en recuadros informativos c\u00f3mo realizar diversas operaciones en <a href=\"https:\/\/kinsta.com\/es\/mykinsta\/\">MyKinsta<\/a>, nuestro propio panel de control para todos tus sitios, aplicaciones y bases de datos de WordPress.<\/p>\n<h2>Cambiar a PHP 8.x: C\u00f3mo Empezar<\/h2>\n<p>Cambiar a PHP 8.x parece sencillo, y t\u00e9cnicamente lo es. Muchos alojamientos te permiten especificar qu\u00e9 versi\u00f3n de PHP quieres utilizar para tu sitio web en el panel de control. En Kinsta, <a href=\"https:\/\/kinsta.com\/es\/changelog\/php-8\/\">cambiar la versi\u00f3n<\/a> de PHP se puede hacer con un solo clic en el panel de control MyKinsta.<\/p>\n<p>Pero antes de hacerlo, debes asegurarte de algunas cosas. Dependiendo de tu nivel de conocimientos y experiencia, te recomendamos lo siguiente:<\/p>\n<ul>\n<li>Si has construido tu propio sitio WordPress con temas y plugins est\u00e1ndar, sin tener muchos conocimientos de PHP, contrata a un desarrollador o a una agencia para que investigue si tu sitio es apto para funcionar con PHP 8.x. \u00bfEst\u00e1s buscando a un proveedor externo que pueda ayudarte con esto? Entonces consulta <a href=\"https:\/\/kinsta.com\/es\/socios\/\">nuestra p\u00e1gina Socios<\/a>, en la que figuran varias empresas de confianza que pueden ayudarte.<\/li>\n<li>Si tu sitio WordPress fue construido por un proveedor externo, un desarrollador o una agencia, ponte en contacto con ellos para preguntarles si tu sitio puede funcionar con PHP 8.x.<\/li>\n<li>Si has construido tu sitio WordPress -con tu propio tema personalizado, por ejemplo, o plugins desarrollados por ti mismo- tenemos una hoja de ruta para ti a continuaci\u00f3n.<\/li>\n<\/ul>\n<p>Si tu sitio pertenece a una de las dos primeras categor\u00edas, te invitamos a que leas el resto del art\u00edculo, pero no te recomendamos que empieces a comprobar la compatibilidad de tu sitio con PHP 8 por ti mismo. D\u00e9jaselo a los profesionales.<\/p>\n<p>Elijas lo que elijas, te aconsejamos que no te limites a cambiar tu sitio activo a PHP 8 y \u00abver si funciona\u00bb \u00bfTienes curiosidad por saber qu\u00e9 aspecto tendr\u00e1 tu sitio y no puedes esperar a verlo funcionando con PHP 8? Entonces empieza a hacer pruebas en un entorno staging. Un buen host te permitir\u00e1 configurar f\u00e1cilmente <a href=\"https:\/\/kinsta.com\/es\/blog\/pruebas-wordpress\/\">un entorno staging<\/a>.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Crear un entorno de ensayo con Kinsta es f\u00e1cil.<\/p>\n<p>En <a href=\"https:\/\/my.kinsta.com\/?lang=es?lang=en\">MyKinsta<\/a>, haz clic en <strong>Sitios WordPress <\/strong>en la barra de navegaci\u00f3n izquierda. Ahora ver\u00e1s una lista de tus sitios\/instalaciones de WordPress. Elige el sitio para el que quieres crear un entorno staging, haz clic en el <strong>Selector de entornos <\/strong>junto al nombre del sitio y elige <strong>Crear un nuevo entorno<\/strong> en el men\u00fa desplegable. En el modal\/pop-up <strong>Crear un nuevo<\/strong> <strong>entorno <\/strong>que aparece, asigna un nombre a tu entorno, elige <strong>Entorno predeterminado<\/strong> y haz clic en el bot\u00f3n <strong>Crear un nuevo entorno<\/strong>.<\/p>\n<p>A continuaci\u00f3n, se te pedir\u00e1 que elijas el entorno que quieres crear. Elige la opci\u00f3n 1, <strong>Clonar un entorno existente<\/strong>. Ahora haz clic en el bot\u00f3n <strong>Crear un nuevo entorno<\/strong>, tras lo cual comenzar\u00e1 la creaci\u00f3n del nuevo entorno. Esto puede tardar unos minutos. Una vez finalizado el proceso, puedes elegir el nuevo entorno staging predeterminado en el desplegable <strong>Selector de entorno<\/strong>, junto al nombre del sitio.<\/p>\n<p>M\u00e1s informaci\u00f3n sobre c\u00f3mo <a href=\"https:\/\/kinsta.com\/es\/docs\/alojamiento-wordpress\/entorno-staging\/\">crear un entorno staging<\/a>.<\/p>\n<\/aside>\n\n<figure id=\"attachment_147928\" aria-describedby=\"caption-attachment-147928\" style=\"width: 2864px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147928 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/mykinsta-create-new-environment-eng0.png\" alt=\"MyKinsta - Crear un nuevo entorno\" width=\"2864\" height=\"968\"><figcaption id=\"caption-attachment-147928\" class=\"wp-caption-text\">MyKinsta &#8211; Crear un nuevo entorno<\/figcaption><\/figure>\n<p>En el entorno staging, puedes activar PHP 8.x y ver si esta actualizaci\u00f3n funciona bien con tu sitio. Tambi\u00e9n es posible trabajar con una copia local de tu sitio. Con nuestra <a href=\"https:\/\/kinsta.com\/es\/devkinsta\/\">herramienta gratuita de desarrollo DevKinsta<\/a>, puedes importar f\u00e1cilmente tu sitio desde el <a href=\"https:\/\/kinsta.com\/es\/mykinsta\/\">panel de MyKinsta<\/a>, tras lo cual puedes cambiar la versi\u00f3n PHP a 8.0 u 8.1.<\/p>\n<p>Si no ves ning\u00fan problema en el entorno de prueba, no significa necesariamente que no haya ning\u00fan problema. La hoja de ruta que aparece a continuaci\u00f3n te explicar\u00e1 por qu\u00e9.<\/p>\n<h2>Pruebas de Compatibilidad con PHP 8.x: La Hoja de Ruta<\/h2>\n<p>Pruebas: la palabra clave de un buen software. Incluso para los sitios web de WordPress y sus componentes, como temas, plugins y el n\u00facleo de WordPress, las pruebas son el medio para garantizar que no ocurran cosas que no quieres que ocurran.<\/p>\n<p>Un proyecto de desarrollo de software consiste en gran medida en las pruebas. En este art\u00edculo, examinamos espec\u00edficamente las pruebas que pueden ayudarte a que la transici\u00f3n a PHP 8.x se realice sin problemas. En nuestro art\u00edculo sobre Herramientas DevOps, encontrar\u00e1s una secci\u00f3n con una <a href=\"https:\/\/kinsta.com\/es\/blog\/herramientas-devops\/#devops-testtools\">colecci\u00f3n de herramientas<\/a> que puedes utilizar.<\/p>\n<p>En esta entrada de blog tratamos los siguientes tipos de pruebas:<\/p>\n<div><\/div><kinsta-auto-toc list-style=\"decimal\" selector=\"h3\" count-number=\"-1\" sub-toc=\"true\"><\/kinsta-auto-toc>\n<p>Veamos con m\u00e1s detalle los distintos tipos de pruebas que podemos realizar.<\/p>\n<h3>An\u00e1lisis est\u00e1tico (o pruebas est\u00e1ticas)<\/h3>\n<p>El primer paso que puedes dar como desarrollador PHP es realizar un an\u00e1lisis est\u00e1tico de tu c\u00f3digo con diversas herramientas. El an\u00e1lisis est\u00e1tico es el proceso de analizar el software sin ejecutar el c\u00f3digo. Con el an\u00e1lisis est\u00e1tico es posible detectar errores, detectar problemas de compatibilidad con PHP 8.x, aplicar normas de codificaci\u00f3n (por ejemplo, <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/best-practices\/coding-standards\/\" target=\"_blank\" rel=\"noopener noreferrer\">las Normas de Codificaci\u00f3n de WordPress<\/a>), e incluso es posible modificar y limpiar el c\u00f3digo.<\/p>\n<h4>Herramientas para el an\u00e1lisis est\u00e1tico<\/h4>\n<p>Puedes realizar un an\u00e1lisis est\u00e1tico con varias herramientas, como:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/PHPCompatibility\/PHPCompatibility\" target=\"_blank\" rel=\"noopener noreferrer\">PHPCompatibility<\/a><\/li>\n<li><a href=\"https:\/\/psalm.dev\/\" target=\"_blank\" rel=\"noopener noreferrer\">Psalm<\/a><\/li>\n<li><a href=\"https:\/\/phpstan.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHPStan<\/a><\/li>\n<\/ul>\n<p>En el momento de escribir esto, no todas las pruebas de PHP 8.1 est\u00e1n soportadas en la \u00faltima versi\u00f3n de PHPCompatibility. Las pruebas de PHP 8.1 pueden estar en la versi\u00f3n de desarrollo, as\u00ed que aseg\u00farate de utilizarlas (por ahora) cuando uses PHPCompatibility para analizar tu proyecto y ver qu\u00e9 errores\/recomendaciones hay.<\/p>\n<p>Las pruebas de PHP 8.1 se publicar\u00e1n pronto en una nueva versi\u00f3n <em>principal <\/em>. Si quieres estar al d\u00eda al respecto, y tienes una cuenta de GitHub, abre el <a href=\"https:\/\/github.com\/PHPCompatibility\/PHPCompatibility\" target=\"_blank\" rel=\"noopener noreferrer\">repositorio de GitHub de PHPCompatibility<\/a>\u00a0y navega hasta <strong>Watch<\/strong> -&gt; <strong>Custom<\/strong> -&gt; <strong>Releases<\/strong>, donde puedes elegir que se te notifique cuando se publique una nueva versi\u00f3n.<\/p>\n<p>PHPCompatibility, que s\u00f3lo comprueba la compatibilidad para una determinada versi\u00f3n (o rango de versiones) de PHP, es f\u00e1cil de configurar. Obtendr\u00e1s los mejores resultados si ejecutas una <a href=\"https:\/\/github.com\/PHPCompatibility\/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions\" target=\"_blank\" rel=\"noopener noreferrer\">testVersion<\/a> &#8211; por ejemplo, 8.0+ (8.0 y superiores) &#8211; dentro de PHPCompatibility.<\/p>\n<p>Deber\u00edas estar atento a las funciones obsoletas o eliminadas, a los cambios en los valores por defecto de los par\u00e1metros de las funciones, al uso de concat sin par\u00e9ntesis, al uso de match como nombre de funci\u00f3n (ya que est\u00e1 reservado desde PHP 8.0), etc.<\/p>\n<figure id=\"attachment_147872\" aria-describedby=\"caption-attachment-147872\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147872 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/PHPCompatibility-1024x619-1.png\" alt=\"Captura de pantalla de la p\u00e1gina GitHub de PHPCompatibility\" width=\"1024\" height=\"619\"><figcaption id=\"caption-attachment-147872\" class=\"wp-caption-text\">Captura de pantalla de la p\u00e1gina GitHub de PHPCompatibility<\/figcaption><\/figure>\n<p>Psalm y PHPStan son buenos complementos y pueden ayudarte a realizar pruebas adicionales relacionadas con los tipos de variables. El inconveniente de estas herramientas es que requieren mucha configuraci\u00f3n para obtener informes sobre PHP 8.0 y 8.1. Incluso si tienen \u00e9xito, puedes esperar muchos falsos positivos. Los falsos positivos son notificaciones que se dan err\u00f3neamente, causadas por las limitaciones del an\u00e1lisis est\u00e1tico.<\/p>\n<p>Se requieren conocimientos s\u00f3lidos para interpretar correctamente los resultados de estas dos herramientas, pero esos conocimientos pueden ayudarte a identificar incompatibilidades adicionales que PHPCompatibility no puede encontrar. Consulta la documentaci\u00f3n de <a href=\"https:\/\/psalm.dev\/docs\/\" target=\"_blank\" rel=\"noopener noreferrer\">Psalm<\/a> y <a href=\"https:\/\/phpstan.org\/user-guide\/getting-started\" target=\"_blank\" rel=\"noopener noreferrer\">PHPStan<\/a> si quieres saber m\u00e1s sobre ellas.<\/p>\n<p>Resumen:<\/p>\n<ul>\n<li>Realizar an\u00e1lisis est\u00e1ticos con PHPCompatibility, Psalm, PHPStan<\/li>\n<li>Resuelve todos los problemas leg\u00edtimos<\/li>\n<\/ul>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-\">\n        <p><strong>Consejo de experto de Juliette<\/strong><\/p>\n<p>Durante las pruebas, en tu archivo php.ini \/ wp-config.php, establece el error_reporting en -1. Esto se debe a que E_ALL, dependiendo de la versi\u00f3n de PHP, no lo contiene todo.<\/p>\n<p>S\u00f3lo a partir de la 8.0 E_ALL lo contiene todo. Adem\u00e1s, activa log_errors para consultar las notificaciones en un archivo de registro.<\/p>\n<p>No actives el registro de errores en un sitio activo porque puede causar retrasos, ya que necesita escribir datos en un archivo. Por lo tanto, hazlo en un entorno de pruebas y aseg\u00farate de que sabes lo que ocurre o falla.<\/p>\n<p>Para ver tus registros en MyKinsta, ve al sitio web y haz clic en <strong>Registros <\/strong>en el men\u00fa. Aqu\u00ed puedes ver los archivos error.log y access.log y estudiar todas las entradas del registro.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/es\/docs\/alojamiento-wordpress\/resolucion-de-problemas-de-wordpress\/ver-registros-del-servidor\/\">Haz clic aqu\u00ed para saber m\u00e1s sobre c\u00f3mo ver los registros en MyKinsta<\/a>.<\/p>\n<\/aside>\n\n<figure id=\"attachment_147929\" aria-describedby=\"caption-attachment-147929\" style=\"width: 2806px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147929 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/mykinsta-access-logs-eng0.png\" alt=\"MyKinsta - ver archivos de registro\" width=\"2806\" height=\"1746\"><figcaption id=\"caption-attachment-147929\" class=\"wp-caption-text\">MyKinsta &#8211; ver archivos de registro<\/figcaption><\/figure>\n<h3>Pruebas unitarias<\/h3>\n<p>El siguiente paso en el proceso son las pruebas unitarias. Las pruebas unitarias son un m\u00e9todo para probar piezas de c\u00f3digo individualmente. En las pruebas unitarias, se desarrollar\u00e1n pruebas espec\u00edficas para cada unidad. Para ello, se ejecutar\u00e1n diferentes escenarios. Es preferible que cada escenario se pruebe por separado de los dem\u00e1s, para que las pruebas sean independientes entre s\u00ed.<\/p>\n<p>Por supuesto, no basta con tener pruebas unitarias. Tambi\u00e9n hay que ejecutarlas. Las pruebas unitarias se automatizan mejor utilizando herramientas de CI (integraci\u00f3n continua) como <a href=\"https:\/\/www.jenkins.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jenkins<\/a>, <a href=\"https:\/\/github.com\/features\/actions\" target=\"_blank\" rel=\"noopener noreferrer\">Acciones de GitHub<\/a> o <a href=\"https:\/\/www.travis-ci.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Travis<\/a>.<\/p>\n<figure id=\"attachment_147875\" aria-describedby=\"caption-attachment-147875\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147875 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/github-actions-1024x687-1.png\" alt=\"Un ejemplo de GitHub Actions\" width=\"1024\" height=\"687\"><figcaption id=\"caption-attachment-147875\" class=\"wp-caption-text\">Un ejemplo de GitHub Actions<\/figcaption><\/figure>\n<h4>Compatibilidad con varias versiones de PHP<\/h4>\n<p>Como constructor de plugins, si quieres soportar m\u00faltiples versiones de PHP, aseg\u00farate de que las pruebas en CI se ejecutan contra todas las versiones de PHP que soportas.<\/p>\n<p>Por supuesto, tambi\u00e9n puedes admitir s\u00f3lo las versiones m\u00e1s recientes, la elecci\u00f3n depende totalmente de ti.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-\">\n        <p><strong>Consejo de experto de Juliette<\/strong><\/p>\n<p>En Acciones de GitHub, ya puedes hacer pruebas con PHP 8.2, lo que te garantizar\u00e1 que recibes avisos a tiempo de los nuevos cambios en PHP que debas tener en cuenta.<\/p>\n<\/aside>\n\n<p>Probar con varias versiones de PHP requiere que utilices varias versiones de PHPUnit, dependiendo de la versi\u00f3n de PHP. Dado que PHPUnit ha introducido varios cambios a lo largo de los a\u00f1os que afectan a la forma de escribir las pruebas, esta parte puede ser complicada.<\/p>\n<p>Para evitarlo, puedes utilizar <a href=\"https:\/\/github.com\/Yoast\/PHPUnit-Polyfills\" target=\"_blank\" rel=\"noopener noreferrer\">los Polyfills de PHPUnit<\/a> (escritos por Juliette y patrocinados por <a href=\"https:\/\/kinsta.com\/partners\/yoast\/\">Yoast<\/a>). Esto te permite escribir pruebas que oficialmente no son compatibles con PHPUnit 9 (y por tanto pueden ejecutarse en PHP 8.x). Los Polyfills hacen que tus pruebas funcionen en PHPUnit 4.x hasta 9.x y con PHP 5.4 hasta PHP 8.1 (a partir de ahora).[\/notice]<\/p>\n<p>Ahora que ya tienes las pruebas funcionando, el siguiente paso es asegurarte de que se solucionan los problemas encontrados en las pruebas.<\/p>\n<h4>Cobertura del c\u00f3digo<\/h4>\n<p>Ejecutar estas pruebas es la forma m\u00e1s fiable de encontrar incompatibilidades entre versiones.<\/p>\n<p>Al hacerlo, presta atenci\u00f3n a la cobertura <em>del <\/em>c\u00f3digo de tus pruebas:<\/p>\n<ul>\n<li>Supongamos que tienes una funci\u00f3n A y has escrito una prueba para ella, y la funci\u00f3n A llama a las funciones B, C y D como parte de la l\u00f3gica de la funci\u00f3n.<\/li>\n<li>La prueba de la funci\u00f3n A est\u00e1 escrita para probar la l\u00f3gica de la funci\u00f3n A, pero tambi\u00e9n llamar\u00e1 a las funciones B, C y D durante la prueba. En el caso de las funciones B, C y D, lo normal es que s\u00f3lo pruebes el \u00abcamino feliz\u00bb -la situaci\u00f3n en la que todo va bien- y, por tanto, esas funciones tampoco est\u00e1n a\u00fan totalmente probadas, aunque (parte de) el c\u00f3digo de esas funciones se ejecute durante la prueba de la funci\u00f3n A.<\/li>\n<li>Para cada una de tus pruebas, indica qu\u00e9 c\u00f3digo se est\u00e1 probando espec\u00edficamente. Para ello, asigna a cada prueba una <a href=\"https:\/\/phpunit.readthedocs.io\/en\/9.5\/code-coverage-analysis.html#specifying-covered-code-parts\" target=\"_blank\" rel=\"noopener noreferrer\">@covers<\/a>. De este modo, B, C y D no se \u00abcuentan\u00bb en el c\u00e1lculo de la cobertura del c\u00f3digo, lo que te permite ver qu\u00e9 parte de tu c\u00f3digo est\u00e1 cubierta por las pruebas.<\/li>\n<\/ul>\n<p>A menudo los desarrolladores escriben y prueban -a veces incluso sin saberlo- para el \u00abcamino feliz\u00bb En estos casos, tambi\u00e9n es necesario probar lo que ocurre cuando se pasan datos inesperados a una funci\u00f3n. <strong>Probar s\u00f3lo con los valores\/tipos esperados no es suficiente<\/strong>.<\/p>\n\n<p>A menudo se olvida la segunda parte de la cita anterior, cuando quiz\u00e1 sea incluso m\u00e1s importante que la primera. \u00bfQu\u00e9 ocurre si pasas un tipo incorrecto? \u00bfRecibes un mensaje de error? \u00bfO la variable se pasa a la funci\u00f3n y \u00e9sta contin\u00faa normalmente? \u00bfY si se pasa un valor inesperado a la funci\u00f3n?<\/p>\n<p>Aseg\u00farate de probar tus funciones con variables, tipos y valores inesperados. S\u00f3lo entonces podr\u00e1s confiar en tus pruebas para encontrar los problemas que pueda causar una nueva versi\u00f3n de PHP.<\/p>\n<h4>PHP se est\u00e1 volviendo m\u00e1s estricto<\/h4>\n<p>PHP se est\u00e1 volviendo m\u00e1s preciso (estricto) en c\u00f3mo maneja los \u00abtipos\u00bb de las funciones propias de PHP, as\u00ed como cosas como las propiedades din\u00e1micas. En general, estos cambios pretenden ayudar a los desarrolladores a entregar c\u00f3digo sin errores (bueno, c\u00f3digo con menos errores). Pero esto puede suponer todo un obst\u00e1culo de actualizaci\u00f3n para el c\u00f3digo preexistente escrito seg\u00fan los \u00abviejos\u00bb principios de PHP.<\/p>\n<p>Debido a este impulso de mensajes de error m\u00e1s \u00fatiles en PHP, puedes ver que hacer que el c\u00f3digo existente se adapte a las nuevas versiones de PHP lleva cada vez m\u00e1s tiempo. Hacer que el c\u00f3digo que funcionaba en PHP 5.6 sea adecuado para PHP 7.0 s\u00f3lo lleva una fracci\u00f3n del tiempo en la mayor\u00eda de los casos, en comparaci\u00f3n con actualizar el c\u00f3digo para hacerlo adecuado para PHP 8.1. Y eso a pesar de que PHP 7.0 era una versi\u00f3n \u00abmayor\u00bb, mientras que PHP 8.1 es una \u00abmenor\u00bb<\/p>\n<p>En muchos casos, las pruebas siguen siendo la \u00fanica forma fiable de determinar lo que hay que modificar para que sea compatible con una nueva versi\u00f3n.<\/p>\n<p>Las pruebas unitarias son posibles con varias herramientas, entre ellas:<\/p>\n<ul>\n<li><a href=\"https:\/\/phpunit.de\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHPUnit<\/a><\/li>\n<li><a href=\"http:\/\/docs.mockery.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mockery<\/a><\/li>\n<li><a href=\"https:\/\/docs.behat.org\/en\/latest\/\" target=\"_blank\" rel=\"noopener noreferrer\">Behat<\/a><\/li>\n<li><a href=\"http:\/\/datasift.github.io\/storyplayer\/v2\/using\/index.html\" target=\"_blank\" rel=\"noopener noreferrer\">Storyplayer<\/a><\/li>\n<\/ul>\n<p>Muchas de estas herramientas se basan en PHPUnit o se desarrollan conjuntamente con \u00e9l.<\/p>\n<p>En \u00faltima instancia, no importa qu\u00e9 herramientas utilices. Lo m\u00e1s importante es que hagas pruebas y que \u00e9stas se ejecuten en las nuevas versiones de PHP. Este paso a veces puede ser muy complicado, pero afortunadamente, como se ha mencionado antes, existen herramientas para ello, como <a href=\"https:\/\/github.com\/Yoast\/PHPUnit-Polyfills\" target=\"_blank\" rel=\"noopener noreferrer\">PHPUnit Polyfills<\/a>.<\/p>\n<h3>Pruebas de integraci\u00f3n<\/h3>\n<p>Las pruebas de integraci\u00f3n son el siguiente paso que realizaremos, despu\u00e9s del an\u00e1lisis est\u00e1tico y las pruebas unitarias. Una prueba de integraci\u00f3n es aquella en la que se prueban situaciones de la vida real en un contexto m\u00e1s amplio que una simple \u00abunidad de c\u00f3digo\u00bb Esto incluye pruebas con una base de datos activa (de prueba) o pruebas con una API externa, por poner s\u00f3lo dos ejemplos.<\/p>\n<p>As\u00ed, cuando pruebas el c\u00f3digo de un plugin o tema en el contexto de WordPress y utilizas una versi\u00f3n real, se trata, por definici\u00f3n, de pruebas de integraci\u00f3n.<\/p>\n<p>WP Test Utils (de nuevo escrito por Juliette y patrocinado por Yoast) es una herramienta excelente para las pruebas de integraci\u00f3n. WP Test Utils proporciona herramientas para escribir pruebas de integraci\u00f3n y unitarias, en las que WordPress se \u00absimula\u00bb utilizando <a href=\"https:\/\/github.com\/Brain-WP\/BrainMonkey\" target=\"_blank\" rel=\"noopener noreferrer\">Brainmonkey<\/a> y <a href=\"http:\/\/docs.mockery.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Mockery<\/a>, donde se \u00absimulan\u00bb las funciones de WordPress m\u00e1s utilizadas, de modo que est\u00e9s probando tu propio c\u00f3digo y no el c\u00f3digo de WordPress.<\/p>\n<figure id=\"attachment_147877\" aria-describedby=\"caption-attachment-147877\" style=\"width: 911px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-147877 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/02\/wp-test-utils.png\" alt=\"WP Test Utilities en GitHub\" width=\"911\" height=\"648\"><figcaption id=\"caption-attachment-147877\" class=\"wp-caption-text\">WP Test Utilities en GitHub<\/figcaption><\/figure>\n<p>Las pruebas de integraci\u00f3n con WordPress son m\u00e1s complicadas porque implican la integraci\u00f3n con WordPress y el conjunto de pruebas de WordPress. Dependiendo de las versiones de WordPress que admita un plugin o un tema, tienes que tener en cuenta qu\u00e9 versiones de PHPUnit admite el propio WordPress para ejecutar las pruebas en diferentes versiones de PHP.<\/p>\n<p>Por ejemplo, WordPress 5.6 a 5.8 utiliza <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/references\/phpunit-compatibility-and-wordpress-versions\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHPUnit 5 a 7<\/a> para probar <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/references\/php-compatibility-and-wordpress-versions\/\" target=\"_blank\" rel=\"noopener noreferrer\">PHP 5.6 a PHP 8.0<\/a>, pero a partir de WordPress 5.9, el propio WordPress tambi\u00e9n utiliza PHPUnit Polyfills para un soporte m\u00e1s amplio. WP Test Utils act\u00faa como puente para superar todas estas diferencias.<\/p>\n<p>\u00bfQuieres saber m\u00e1s sobre c\u00f3mo ejecutar pruebas de integraci\u00f3n con varias versiones diferentes de WordPress, incluyendo WordPress 5.9 y superiores? Entonces <a href=\"https:\/\/make.wordpress.org\/core\/2021\/09\/27\/changes-to-the-wordpress-core-php-test-suite\/\" target=\"_blank\" rel=\"noopener noreferrer\">lee sobre ello en el sitio web de WordPress<\/a>.<\/p>\n<h3>Pruebas manuales<\/h3>\n<p>Ahora que ya has realizado las pruebas unitarias y de integraci\u00f3n y has solucionado todos los problemas que encontraste, es el momento de realizar las pruebas manuales. Tu sitio est\u00e1 en funcionamiento y tu propio c\u00f3digo funciona, pero tambi\u00e9n utilizas los plugins A, B y C. \u00bfSabes si esos plugins son compatibles?<\/p>\n<p>Por ejemplo, compru\u00e9balo con los autores del plugin y mira si indican que es compatible con PHP 8.x. La pregunta entonces, por supuesto, es c\u00f3mo se ha probado el plugin. A menudo la respuesta es: de forma aislada. Por lo general, las funciones del plugin se han probado s\u00f3lo con WordPress, sin otros plugins activos. E incluso si se utilizaron otros plugins en estas pruebas, lo m\u00e1s probable es que no todos los plugins <em>que<\/em> utilizas formaran parte de las pruebas, as\u00ed que t\u00f3mate esa afirmaci\u00f3n de compatibilidad con un grano de sal.<\/p>\n<p>Por ejemplo, un sitio WordPress con 3 plugins (A, B y C). Es posible que el plugin B, por ejemplo, devuelva un tipo de variable incorrecto a trav\u00e9s de un filtro, con el que el plugin C, que utiliza el mismo filtro, quiere trabajar. Esto puede provocar un error fatal porque el tipo ya no es el esperado. Entonces, el plugin C se considera el culpable del mensaje de error, aunque el verdadero infractor sea el plugin B.<\/p>\n<p>Las incompatibilidades de interoperabilidad de los plugins son imposibles de descubrir cuando se prueban de forma aislada. Cuantos m\u00e1s plugins activos haya, m\u00e1s probable es que algo vaya mal. Por ejemplo, ser\u00eda muy beneficioso pasar peticiones de p\u00e1ginas de un sitio web activo a un entorno staging (con el registro de errores activado) para descubrir qu\u00e9 es lo que realmente va mal.<\/p>\n<p>Con este tipo de problema, el propietario de un sitio normalmente s\u00f3lo ver\u00e1 un mensaje de que se ha producido un error con el \u00faltimo c\u00f3digo ejecutado (en este caso, del plugin C), aunque el plugin C no sea necesariamente la causa del problema.<\/p>\n<p>En la mayor\u00eda de los casos, se requiere mucho trabajo humano manual y una buena cantidad de esfuerzo para detectar y solucionar estos problemas. Esto <em>podr\u00eda <\/em>automatizarse mediante pruebas de extremo a extremo, pero no vemos que ocurra mucho en WordPress.<\/p>\n<h4>Disponibilidad de pruebas para los plugins utilizados<\/h4>\n<p>Para desarrolladores y equipos de desarrollo: Acepta el c\u00f3digo s\u00f3lo cuando las pruebas est\u00e9n disponibles. De este modo, te aseguras de que se requieren menos pruebas manuales, lo que te ahorra mucho tiempo.<\/p>\n<p>Cuestiona su estrategia de pruebas si quieres comprar un plugin o tema comercial. De esta forma, creamos conciencia colectiva entre los desarrolladores\/equipos de desarrollo de la comunidad de WordPress para que las pruebas ocupen un lugar m\u00e1s destacado en la agenda, y todos nos beneficiamos.<\/p>\n<p>A menudo se considera -injustamente- que las pruebas suponen un coste, cuando, en realidad, ahorran dinero. La inversi\u00f3n adicional necesaria para escribir pruebas se amortiza en forma de un n\u00famero significativamente menor de informes de errores y menos tiempo dedicado a solucionarlos. Adem\u00e1s, con las pruebas de software automatizadas, las ampliaciones y modificaciones pueden hacerse m\u00e1s r\u00e1pidamente porque las pruebas pueden confirmar r\u00e1pidamente que la funcionalidad existente sigue funcionando.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-\">\n        <p><strong>Consejo de experto de Juliette<\/strong><\/p>\n<p>Cuando quieras empezar a escribir c\u00f3digo nuevo<\/p>\n<ol>\n<li>Empieza por escribir qu\u00e9 debe hacer una funci\u00f3n y con qu\u00e9 l\u00f3gica. Escr\u00edbelo como un comentario o una serie de comentarios.<\/li>\n<li>Escribe las pruebas. Intenta tener en cuenta tambi\u00e9n los casos extremos.<\/li>\n<li>S\u00f3lo entonces escribe el c\u00f3digo.<\/li>\n<\/ol>\n<p>De la l\u00f3gica original que has descrito en los comentarios, la mitad habr\u00e1 desaparecido porque ha sido sustituida por c\u00f3digo. Deja el resto de los comentarios, ya que pueden ayudarte a comprender de nuevo la l\u00f3gica m\u00e1s adelante, si hace tiempo que no miras tu c\u00f3digo<\/p>\n<\/aside>\n\n\n<h2>El Papel de los Hosts de WordPress y PHP 8.x<\/h2>\n<p>Para el propietario medio de un sitio web, la orientaci\u00f3n de tu host es muy deseable. Considera lo siguiente:<\/p>\n<ul>\n<li>Documentaci\u00f3n y actualizaciones para los clientes sobre el hecho de que WordPress Core, los plugins y\/o los temas (en algunos casos) no son compatibles con las versiones cruzadas de PHP<\/li>\n<li>Opciones para realizar pruebas (como <a href=\"https:\/\/kinsta.com\/es\/wordpress-hosting\/staging\/\">trabajar con un entorno de staging<\/a>)<\/li>\n<li>M\u00e9todos para informar sobre errores y contactar con el servicio de asistencia<\/li>\n<\/ul>\n<p>Esto tambi\u00e9n beneficia al proveedor de alojamiento web, ya que los propietarios de los sitios suelen ponerse en contacto con \u00e9l para solicitar ayuda cuando surgen problemas. En el caso de un cambio a PHP 8.0, 8.1, u 8.2, el propietario del sitio es responsable de los posibles problemas, y cuanta m\u00e1s informaci\u00f3n tenga el propietario para preparar adecuadamente el cambio, mejor.<\/p>\n<p>Poner PHP 8.1 o 8.2 a disposici\u00f3n de los clientes como alojamiento web es una cosa, pero al hacerlo, deben asegurarse de concienciar a los clientes para que sean conscientes de que pueden surgir problemas. Se recomienda probar el sitio en un entorno staging con una versi\u00f3n diferente a la del sitio en vivo. (La selecci\u00f3n de versiones de PHP est\u00e1 <a href=\"https:\/\/kinsta.com\/es\/changelog\/php-8\/\">disponible por defecto en Kinsta<\/a>.)<\/p>\n<h2>Versi\u00f3n M\u00ednima de PHP para WordPress<\/h2>\n<p>M\u00e1s del 15% de todos los sitios web utilizan actualmente la versi\u00f3n 7.0 o inferior de PHP. Esto puede verse en las <a href=\"https:\/\/wordpress.org\/about\/stats\/\" target=\"_blank\" rel=\"noopener noreferrer\">estad\u00edsticas oficiales de WordPress<\/a>. Alrededor del 83% de todos los sitios WordPress utilizan actualmente la versi\u00f3n PHP 7.4 o inferior. Ten en cuenta que cualquier versi\u00f3n inferior o igual a la 8.0 <a href=\"https:\/\/www.php.net\/supported-versions\" target=\"_blank\" rel=\"noopener noreferrer\">ya no est\u00e1 soportada por PHP<\/a>. Utilizar versiones de PHP al final de su vida \u00fatil puede ocasionar problemas porque ya no se publican actualizaciones de seguridad.<\/p>\n<p>Para evitar problemas, es importante que los propietarios de sitios WordPress conozcan y est\u00e9n informados sobre la versi\u00f3n m\u00ednima de PHP que permitir\u00e1 que su sitio funcione con seguridad. Por su parte, los propietarios de sitios pueden modificar ellos mismos la versi\u00f3n de PHP (<a href=\"https:\/\/kinsta.com\/es\/blog\/como-actualizar-php-en-wordpress\/\">posible en Kinsta para todos los paquetes<\/a>) o pedir a su alojamiento que actualice el sitio a una versi\u00f3n de PHP m\u00e1s reciente. En casos extremos, puedes cambiar a un host que soporte estas versiones m\u00e1s recientes.<\/p>\n<p>Como WordPress s\u00f3lo requiere una <a href=\"https:\/\/wordpress.org\/about\/requirements\/\" target=\"_blank\" rel=\"noopener noreferrer\">versi\u00f3n m\u00ednima de 7.4<\/a>, no hay motivaci\u00f3n suficiente para que muchos hosts y propietarios de sitios web actualicen sus sitios. Y ello a pesar de que PHP 7.4 lleg\u00f3 al final de su vida \u00fatil en <a href=\"https:\/\/www.php.net\/eol.php\" target=\"_blank\" rel=\"noopener noreferrer\">noviembre de 2022<\/a>.<\/p>\n<p>Si alguna vez WordPress aumenta la versi\u00f3n m\u00ednima de PHP, esto puede significar que muchos sitios dejar\u00e1n de ser compatibles con una actualizaci\u00f3n a la \u00faltima versi\u00f3n de WordPress. Sin embargo, se seguir\u00e1n publicando actualizaciones de seguridad para esas versiones obsoletas durante bastante tiempo.<\/p>\n<h2>Resumen<\/h2>\n<p>Para cambiar a PHP 8.0 o superior para tu sitio web, hay varios pasos que t\u00fa, o tu desarrollador, deb\u00e9is realizar. Algunos pasos importantes son:<\/p>\n<ul>\n<li>An\u00e1lisis est\u00e1tico<\/li>\n<li>Pruebas unitarias<\/li>\n<li>Pruebas de integraci\u00f3n<\/li>\n<li>Pruebas manuales<\/li>\n<\/ul>\n<p>Al cambiar a PHP 8.x, aseg\u00farate de que <em>todo<\/em> se ha probado correctamente. \u00c9sta es la \u00fanica forma de garantizar que tu sitio funcionar\u00e1 correctamente, con rapidez y seguridad en una versi\u00f3n PHP m\u00e1s reciente.<\/p>\n<p>Agradecemos inmensamente a Juliette su participaci\u00f3n en este art\u00edculo y todo su trabajo en las herramientas mencionadas<\/p>\n<p><em>Foto de Juliette, tomada por Jip Moors y utilizada con permiso.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Actualizar un sitio, plugin o tema de WordPress a una nueva versi\u00f3n de PHP es una tarea que se repite con regularidad. Pero, \u00bfc\u00f3mo hacerlo de &#8230;<\/p>\n","protected":false},"author":139,"featured_media":63695,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1317,1304],"class_list":["post-63694","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-actualizaciones-php","topic-aprender-php"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cambiar a PHP 8.x en Cuatro Pasos - Entrevista con Juliette Reinders Folmer - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Descubre qu\u00e9 implica una transici\u00f3n sin problemas a PHP 8.x para tu sitio, plugin o tema de WordPress, incluida una hoja de ruta.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cambiar a PHP 8.x en Cuatro Pasos - Entrevista con Juliette Reinders Folmer\" \/>\n<meta property=\"og:description\" content=\"Descubre qu\u00e9 implica una transici\u00f3n sin problemas a PHP 8.x para tu sitio, plugin o tema de WordPress, incluida una hoja de ruta.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-07T10:39:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-23T09:37:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Marcel Bootsman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Descubre qu\u00e9 implica una transici\u00f3n sin problemas a PHP 8.x para tu sitio, plugin o tema de WordPress, incluida una hoja de ruta.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marcel Bootsman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/\"},\"author\":{\"name\":\"Marcel Bootsman\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7\"},\"headline\":\"Cambiar a PHP 8.x en Cuatro Pasos &#8211; Entrevista con Juliette Reinders Folmer\",\"datePublished\":\"2023-03-07T10:39:13+00:00\",\"dateModified\":\"2023-08-23T09:37:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/\"},\"wordCount\":4335,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/\",\"name\":\"Cambiar a PHP 8.x en Cuatro Pasos - Entrevista con Juliette Reinders Folmer - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"datePublished\":\"2023-03-07T10:39:13+00:00\",\"dateModified\":\"2023-08-23T09:37:23+00:00\",\"description\":\"Descubre qu\u00e9 implica una transici\u00f3n sin problemas a PHP 8.x para tu sitio, plugin o tema de WordPress, incluida una hoja de ruta.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Aprender PHP\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/aprender-php\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Cambiar a PHP 8.x en Cuatro Pasos &#8211; Entrevista con Juliette Reinders Folmer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7\",\"name\":\"Marcel Bootsman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g\",\"caption\":\"Marcel Bootsman\"},\"description\":\"Partnerships &amp; Community Manager EMEA. Je kan me bereiken via Linkedin.\",\"sameAs\":[\"https:\/\/kinsta.com\/nl\/\",\"https:\/\/www.linkedin.com\/in\/marcelbootsman\/\"],\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/marcelbootsman\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cambiar a PHP 8.x en Cuatro Pasos - Entrevista con Juliette Reinders Folmer - Kinsta\u00ae","description":"Descubre qu\u00e9 implica una transici\u00f3n sin problemas a PHP 8.x para tu sitio, plugin o tema de WordPress, incluida una hoja de ruta.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/","og_locale":"es_ES","og_type":"article","og_title":"Cambiar a PHP 8.x en Cuatro Pasos - Entrevista con Juliette Reinders Folmer","og_description":"Descubre qu\u00e9 implica una transici\u00f3n sin problemas a PHP 8.x para tu sitio, plugin o tema de WordPress, incluida una hoja de ruta.","og_url":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2023-03-07T10:39:13+00:00","article_modified_time":"2023-08-23T09:37:23+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png","type":"image\/png"}],"author":"Marcel Bootsman","twitter_card":"summary_large_image","twitter_description":"Descubre qu\u00e9 implica una transici\u00f3n sin problemas a PHP 8.x para tu sitio, plugin o tema de WordPress, incluida una hoja de ruta.","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png","twitter_creator":"@Kinsta_ES","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Marcel Bootsman","Tiempo de lectura":"19 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/"},"author":{"name":"Marcel Bootsman","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7"},"headline":"Cambiar a PHP 8.x en Cuatro Pasos &#8211; Entrevista con Juliette Reinders Folmer","datePublished":"2023-03-07T10:39:13+00:00","dateModified":"2023-08-23T09:37:23+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/"},"wordCount":4335,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/","url":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/","name":"Cambiar a PHP 8.x en Cuatro Pasos - Entrevista con Juliette Reinders Folmer - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png","datePublished":"2023-03-07T10:39:13+00:00","dateModified":"2023-08-23T09:37:23+00:00","description":"Descubre qu\u00e9 implica una transici\u00f3n sin problemas a PHP 8.x para tu sitio, plugin o tema de WordPress, incluida una hoja de ruta.","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/Juliette_Reinders_Folmer_image.png","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/cambiar-a-php-8\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Aprender PHP","item":"https:\/\/kinsta.com\/es\/secciones\/aprender-php\/"},{"@type":"ListItem","position":3,"name":"Cambiar a PHP 8.x en Cuatro Pasos &#8211; Entrevista con Juliette Reinders Folmer"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/d8f086a7911078001ff0e6c05d42b5c7","name":"Marcel Bootsman","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1bf6543c8d557c182b40836c561bf0cd?s=96&d=mm&r=g","caption":"Marcel Bootsman"},"description":"Partnerships &amp; Community Manager EMEA. Je kan me bereiken via Linkedin.","sameAs":["https:\/\/kinsta.com\/nl\/","https:\/\/www.linkedin.com\/in\/marcelbootsman\/"],"url":"https:\/\/kinsta.com\/es\/blog\/author\/marcelbootsman\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/63694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/139"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=63694"}],"version-history":[{"count":15,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/63694\/revisions"}],"predecessor-version":[{"id":67488,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/63694\/revisions\/67488"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63694\/translations\/en"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63694\/translations\/nl"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63694\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63694\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63694\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63694\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63694\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63694\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63694\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63694\/translations\/dk"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63694\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/63695"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=63694"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=63694"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=63694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}