{"id":14488,"date":"2022-12-09T12:01:00","date_gmt":"2022-12-09T12:01:00","guid":{"rendered":"https:\/\/newblog.siteground.com\/es\/?p=14488"},"modified":"2022-12-15T12:47:21","modified_gmt":"2022-12-15T12:47:21","slug":"version-candidata-php-8-2-servidores-siteground","status":"publish","type":"post","link":"https:\/\/www.siteground.es\/blog\/version-candidata-php-8-2-servidores-siteground\/","title":{"rendered":"Versi\u00f3n PHP 8.2 ya estable y disponible en los servidores de SiteGround"},"content":{"rendered":"\n<div class=\"post-page__colored-blocks post-page__colored-blocks--update\"><h3 class=\"title title--regular title--size-medium title--weight-bold color-darkest\">UPDATE<\/h3><p class=\"text text--size-medium color-darkest\">Nos alegra anunciar que PHP 8.2 ya se considera estable y se ha implementado en todos los servidores de SiteGround. Una vez m\u00e1s, estamos entre las primeras empresas en tenerlo ya disponible en nuestra plataforma de hosting. Lee este art\u00edculo de blog para obtener m\u00e1s informaci\u00f3n sobre las nuevas caracter\u00edsticas de la \u00faltima versi\u00f3n de PHP.<\/p><\/div>\n\n\n\n<p>\u00a1Ha llegado la \u00e9poca del a\u00f1o en que todos los buenos desarrolladores de PHP han estado esperando! Santa (ElePHPant) ha llegado temprano como de costumbre en SiteGround y ha tra\u00eddo muchas cosas nuevas que facilitan a los desarrolladores trabajar en sus proyectos.<\/p>\n\n\n\n<p>Ahora mismo, PHP 8.2 se encuentra en estado Release Candidate 1 (RC1). Estamos en las \u00faltimas etapas de desarrollo y correcci\u00f3n de errores para esta versi\u00f3n y solo unos pocos proveedores de hostings como SiteGround est\u00e1n poniendo ahora el RC a disposici\u00f3n de sus clientes para que lo prueben. De hecho, la nueva versi\u00f3n de PHP a\u00fan no est\u00e1 en producci\u00f3n, pero es posible usar el RC para probarla.<\/p>\n\n\n\n<p>As\u00ed que echemos un vistazo a algunas de las pr\u00f3ximas noticias.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Nuevas_funciones\"><\/span>Nuevas funciones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Primero, echemos un vistazo a algunas de las nuevas caracter\u00edsticas que ser\u00e1n de inter\u00e9s para los desarrolladores de PHP. \u00c9sta no es una lista exhaustiva de las novedades, m\u00e1s bien es una lista corta de las cosas que creo que interesar\u00e1n a la mayor\u00eda de los desarrolladores de PHP.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Clases <strong>readonly&nbsp;<\/strong><\/h3>\n\n\n\n<p>En PHP 8.1 conseguimos propiedades <strong>readonly<\/strong> para las clases. Esto fue un gran salto hacia adelante para muchos proyectos. Sin embargo, todav\u00eda hab\u00eda un peque\u00f1o agujero que necesitaba ser tapado: las clases. S\u00ed, puedes hacer que cada propiedad escrita en una clase sea de solo lectura y listo, pero, sinceramente, esto requiere mucho trabajo y muchos desarrolladores como yo somos bastante vagos. Con PHP 8.2, podemos marcar una clase completa como <strong>readonly<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<pre class=\"wp-block-preformatted\">readonly class MyClass {\n    public int $myProp;\n<meta charset=\"utf-8\">&nbsp;&nbsp;&nbsp;&nbsp;public string $myOtherProp;\n<meta charset=\"utf-8\">&nbsp;&nbsp;&nbsp;&nbsp;public __construct(string $myOtherProp, int $myProp)&nbsp;\n<meta charset=\"utf-8\">&nbsp;{\n<meta charset=\"utf-8\">    $this-&gt;myProp = $myProp;\n<meta charset=\"utf-8\">&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;myOtherProp = $myOtherProp;\n  }\n}<\/pre>\n<\/div><\/div>\n\n\n\n<p>Aqu\u00ed tenemos una clase definida como <strong>readonly<\/strong>. Tenemos 2 propiedades de la clase y ambas son inherentemente solo lectura. Las reglas de solo lectura de PHP 8.1 a\u00fan se aplican y solo puedes inicializar la propiedad una vez, despu\u00e9s de lo cual queda configurada.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>$myObj = new MyClass(\u2018Cal was here\u2019,42);<\/strong><\/pre>\n\n\n\n<p>Sin embargo, una vez inicializadas, ahora son inmutables.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>$myObj-&gt;myProp = \u2018Cal is no longer here\u2019;<\/strong><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>\/\/ Fatal Error: Uncaught Error: Cannot modify readonly property MyClass::myProp<\/strong><\/pre>\n\n\n\n<p>Otro comportamiento de la clase readonly es que las propiedades no se pueden agregar din\u00e1micamente a la clase. A continuaci\u00f3n, hablamos sobre la deprecaci\u00f3n de las propiedades din\u00e1micas y c\u00f3mo esto es algo bueno. Tambi\u00e9n hay una anotaci\u00f3n que te permite ignorar esto. Sin embargo, si marcas una clase como <strong>readonly<\/strong>, no se puede sobrescribir.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Constantes en Traits<\/h3>\n\n\n\n<p>Los traits (rasgos) han estado con nosotros desde PHP 5.4. Han sido durante mucho tiempo la respuesta a la &#8220;composici\u00f3n sobre la herencia&#8221;. Ahora los traits obtienen una caracter\u00edstica nueva e interesante, la capacidad de definir constantes en un trait.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>trait MyTrait {<\/strong>\n    private const MY_CONSTANT = 42;\n}<\/pre>\n\n\n\n<p>Ahora, si tu trait usa una constante, puedes definirlo en el trait y no tener que acordarte de definirlo en cada clase que usa el trait.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">trait MyTrait {\nprivate const MY_CONSTANT = 42;\npublic function meaningOfLife() : int\n {\n<meta charset=\"utf-8\">&nbsp;&nbsp; return self::MY_CONSTANT;\n }\n}\nclass MyClass {\n   use MyTrait;\n}\n<meta charset=\"utf-8\">$myObj = new MyClass();\n<meta charset=\"utf-8\">echo $myObj-&gt;meaningOfLife(); \/\/ prints 42<\/pre>\n\n\n\n<p>Como todo en la vida, hay algunas reglas.<\/p>\n\n\n\n<p>Los traits pueden definir constantes de clase. Si una clase usa ese trait, tambi\u00e9n puede definir la misma constante de clase<strong> siempre que tanto la visibilidad como el valor sean exactamente los mismos<\/strong>. Por lo tanto, el ejemplo anterior funciona, pero el siguiente desencadenar\u00e1 un error fatal.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">trait MyTrait {\nprivate const MY_CONSTANT = 42;\npublic function meaningOfLife() : int\n {\n&nbsp;&nbsp;&nbsp;return self::MY_CONSTANT;\n }\n}\n<meta charset=\"utf-8\">class MyClass {\n<meta charset=\"utf-8\">&nbsp;&nbsp;&nbsp;&nbsp;use MyTrait;\n<meta charset=\"utf-8\">&nbsp;&nbsp;&nbsp;&nbsp;public const MY_CONSTANT = 42;\n<meta charset=\"utf-8\">}<\/pre>\n\n\n\n<p>A\u00fan as\u00ed, incluso con las reglas que debes seguir, \u00e9ste es un verdadero paso hacia adelante. Los traits son una excelente manera de compartir c\u00f3digo entre clases y ahora son a\u00fan m\u00e1s aut\u00f3nomos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Extensi\u00f3n aleatoria 5.x + mejora de extensi\u00f3n aleatoria<\/h3>\n\n\n\n<p>El generador de n\u00fameros aleatorios de PHP original todav\u00eda est\u00e1 en el c\u00f3digo base. Nunca ha sido genial y es absolutamente in\u00fatil para usos criptogr\u00e1ficos. En PHP 7, conseguimos un par de funciones nuevas, <strong>random_int()<\/strong> y <strong>random_bytes()<\/strong>. Recorrieron un largo camino para solucionar los problemas, pero bajo el cap\u00f3, son solo interfaces para el generador de n\u00fameros aleatorios del sistema operativo nativo. En ese momento, \u00e9sta era una buena soluci\u00f3n, pero el problema es que es lento.<\/p>\n\n\n\n<p>Ahora con PHP 8.2 no solo conseguimos un generador de n\u00fameros aleatorios completamente nuevo, sino que est\u00e1 integrado en PHP, y obtenemos una interfaz extensible orientada a objetos.<\/p>\n\n\n\n<p>\u00c9stos son en realidad dos RFC diferentes que estoy agrupando. Despu\u00e9s de votar y aprobar la primera &#8220;Extensi\u00f3n aleatoria 5.x&#8221;, result\u00f3 que hab\u00eda algunos problemas con ella. Se prepar\u00f3 y vot\u00f3 una segunda RFC, &#8220;Mejora de extensi\u00f3n aleatoria&#8221;, para abordar los problemas encontrados con la primera.<\/p>\n\n\n\n<p>El resultado final es un nuevo conjunto de clases que nos brinda mejores n\u00fameros pseudoaleatorios en PHP.<\/p>\n\n\n\n<p>Si bien estamos obteniendo varios generadores de n\u00fameros aleatorios (RNG) nuevos, para simplificar, hablar\u00e9 sobre la nueva clase <strong>Random\\Engine\\Secure<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>$engine = new Random\\Engine\\Secure();<\/strong><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>$randomString = $engine-&gt;generate(); \/\/ a random binary string<\/strong><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>echo bin2hex($randomString);&nbsp;<\/strong><\/pre>\n\n\n\n<p>Ahora, si queremos hacer algo como ordenar una matriz, necesitamos uno de los nuevos objetos Randomizer.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>$randomizer = new Random\\Randomizer($engine);<\/strong><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>$items = range(1, 10);<\/strong><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>$randomizedItems = $randomizer-&gt;shuffleArray($items);<\/strong><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>print_r($randomizedItems);<\/strong><\/pre>\n\n\n\n<p>En el ejemplo anterior, usamos el motor Secure. El motor Secure no acepta una semilla (seed) y siempre generar\u00e1 una cadena que no se puede reproducir. Los motores que te permiten especificar una semilla producir\u00e1n los mismos resultados cada vez que uses la misma semilla.<\/p>\n\n\n\n<p>La clase Randomizer tambi\u00e9n proporciona muchos otros m\u00e9todos que son realmente lo que buscan los desarrolladores de PHP.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>getInt() : int<\/strong><br>This replaces the old <strong>mt_rand()<\/strong> function<\/li><li><strong>getInt(int $min, int $max) : int<\/strong><strong><br><\/strong>This replaces both the old <strong>mt_rand()<\/strong> function as well as the newer <strong>random_int()<\/strong> function.<\/li><li><strong>getBytes(int length): string<\/strong><br>This replaces the <strong>random_bytes()<\/strong> function&nbsp;<\/li><li><strong>shuffleArray(array $array): array<\/strong><br>This replaces the old <strong>shuffle_array()<\/strong> function<\/li><li><strong>shuffleString(string $string): string<\/strong><br>This replaces the old <strong>str_shuffle()<\/strong> function<\/li><\/ul>\n\n\n\n<p>Entre otras cosas, dado que esto re\u00fane todas las caracter\u00edsticas de aleatorizaci\u00f3n en un \u00e1rea del motor, agiliza el c\u00f3digo principal y facilitar\u00e1 las mejoras adicionales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Gracias_por_todo_y_seguimos_adelante\"><\/span>Gracias por todo y seguimos adelante<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Todas las cosas buenas llegan a su fin y eso incluye algunas caracter\u00edsticas y comandos de PHP. Echemos un vistazo a un par de deprecaciones importantes que, si no tienes cuidado, terminar\u00e1n caus\u00e1ndote problemas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Propiedades din\u00e1micas obsoletas&nbsp;<\/h3>\n\n\n\n<p>A primera vista, parece que esto va a ser un gran problema. Desde que PHP obtuvo el modelo de objeto actual, ha sido posible agregar propiedades a un objeto en cualquier momento. Ahora alguien piensa que este comportamiento es algo malo. (PISTA: Esto siempre ha sido algo malo, pero muchos desarrolladores se han aprovechado de ello).<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>class MyClass {<\/strong>\n  public string $name;\n}\n$myObj = new MyClass():\n$myObj-&gt;nmae = \u2018Cal Evans\u2019;\n<\/pre>\n\n\n\n<p>Ten en cuenta que he escrito mal el <strong>nombre (name)<\/strong> de la propiedad. S\u00e9 que probablemente soy el \u00fanico desarrollador que ha escrito mal el nombre de una propiedad, pero en PHP cuando sucede, obtengo una nueva propiedad en el objeto y la propiedad original permanece sin cambios. Esa no era mi intenci\u00f3n.<\/p>\n\n\n\n<p>Comenzando con PHP 8.2, esto emitir\u00e1 un DEPRECATED WARNING (ADVERTENCIA DE DEPRECACI\u00d3N).<\/p>\n\n\n\n<p>Hay 3 excepciones a esta nueva regla.&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Cualquier instancia de StdClass a\u00fan podr\u00e1 aceptar propiedades din\u00e1micas.<\/li><li>Cualquier clase con m\u00e9todos __get() y __set() todav\u00eda aceptar\u00e1 cualquier propiedad.<\/li><li>Cualquier clase que tenga la anotaci\u00f3n del compilador <strong>#[AllowDynamicProperties]<\/strong>y cualquier subclase permitir\u00e1 establecer propiedades din\u00e1micas.<\/li><\/ol>\n\n\n\n<p>Entonces, aunque no todo est\u00e1 perdido para aquellos que dependen de esta &#8220;caracter\u00edstica&#8221; de PHP, si todav\u00eda vas a usarla, tendr\u00e1s que hacer algunos cambios en tu c\u00f3digo.<\/p>\n\n\n\n<p>La buena noticia es que todo lo que suceder\u00e1 en este momento es que la advertencia emitida aparecer\u00e1 en los archivos de registro. Por lo tanto, si bien puede llenar tus archivos de registro record\u00e1ndote que necesitas arreglar esto, PHP 8.2 no romper\u00e1 tu c\u00f3digo. Eso suceder\u00e1 en PHP 9.0 cuando la advertencia, y la capacidad de agregar propiedades din\u00e1micas autom\u00e1ticamente, se elimine de PHP.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">(Parcial) Deprecaci\u00f3n ${} string interpolation<\/h3>\n\n\n\n<p>Esta es otra deprecaci\u00f3n que al principi\u00f3 pens\u00e9 que iba a ser un gran problema. Resulta que probablemente no afectar\u00e1 a muchos desarrolladores.<\/p>\n\n\n\n<p>Hay 4 formas de implementar la sintaxis \u201c{$variableName}\u201d, 2 que tienen sentido y dos que no. Las dos que no lo tienen, se van. Ve\u00e1moslas juntos:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>echo \u201c$meaningOfLife\u201d;<\/strong><\/pre>\n\n\n\n<p>Con diferencia, esta es la versi\u00f3n m\u00e1s com\u00fan de interpolaci\u00f3n de cadenas. Simplemente coloca la variable en una cadena con comillas dobles. Si lo haces as\u00ed, entonces todo bien, esta es una de las dos formas que se quedan.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>echo \u201c{$meaningOfLife}\u201d;<\/strong><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>echo \u201c{$dogulasAdams-&gt;meaningOfLife()}\u201d;<\/strong><\/pre>\n\n\n\n<p>Siempre he considerado esta manera de la \u201cvieja escuela&#8221;. S\u00ed, sol\u00edamos hacerlo en el pasado, pero no lo he hecho de esta manera en mucho tiempo. A\u00fan as\u00ed, funciona, es limpio y es f\u00e1cil de entender. Esta es la otra forma que se queda.<\/p>\n\n\n\n<p>Este es tambi\u00e9n el \u00fanico m\u00e9todo que te permite usar propiedades y m\u00e9todos de objeto. Por lo tanto, si deseas usar la interpolaci\u00f3n de cadenas con un objeto, necesitar\u00e1s este m\u00e9todo.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>echo \u201c${meaningOfLife}\u201d;<\/strong><\/pre>\n\n\n\n<p>Esta se va a ir. S\u00ed, hace lo mismo que las dos primeras, pero es un poco m\u00e1s confuso porque <strong>$<\/strong> est\u00e1 fuera de las llaves.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>$fourtyTwo = 42;<\/strong><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>$meaningOfLife = \u2018fourtyTwo\u2019;<\/strong><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><strong>echo \u201c${meaningOfLife}\u201d;<\/strong><\/pre>\n\n\n\n<p>Finalmente, tenemos la forma en que puedes usar &#8220;variables variables&#8221; desde dentro de la interpolaci\u00f3n de cadenas. Esto es simplemente demasiados niveles de indirecci\u00f3n. En el c\u00f3digo de arriba, eventualmente llegamos al punto donde hacemos echo out 42, pero tomamos el camino m\u00e1s largo.<\/p>\n\n\n\n<p>A partir de PHP 8.2, las dos \u00faltimas estructuras emitir\u00e1n una ADVERTENCIA DE DEPRECACI\u00d3N en tus archivos de registro. En PHP 9.0, dejar\u00e1n de funcionar por completo y har\u00e1n que tu programa no funcione (o lanzar\u00e1 un error que puedes detectar, pero del que probablemente no puedas recuperarte).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"En_resumen\"><\/span>En resumen&nbsp;<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u00c9sta es la primera versi\u00f3n candidata definitiva de PHP 8.2. No la reproduzcas en ning\u00fan sitio en producci\u00f3n. Si quieres probarla con un sitio existente, configura un nuevo sitio de pruebas, clona tu sitio de producci\u00f3n en \u00e9l y prueba de ese modo. Cuando hayas terminado, puedes simplemente eliminarlo.<\/p>\n\n\n\n<p>Mientras trabajas en tu nuevo entorno de prueba, comprueba los archivos de registro despu\u00e9s de cada prueba. Aseg\u00farate de que no haya errores y busca nuevas advertencias.<\/p>\n\n\n\n<p>Si PHP 8.2 es algo as\u00ed como PHP 8.0 y PHP 8.1, no espero que el c\u00f3digo PHP moderno tenga ning\u00fan problema con \u00e9l. Afortunadamente, los ingenieros de SiteGround hacen que sea incre\u00edblemente f\u00e1cil para ti probar las cosas para asegurarte de que tu sitio pueda funcionar lo m\u00e1s r\u00e1pido posible con PHP 8.2.<\/p>\n\n\n\n<p>Hablando de rendimiento, PHP 8.2 a\u00fan no se ha evaluado adecuadamente, pero esperamos que cada versi\u00f3n de PHP sea un poco m\u00e1s r\u00e1pida que las versiones anteriores. Con los cambios en el sistema CSPRNG y otras cosas como eliminar la antigua libmysql, es una apuesta segura que esta versi\u00f3n ser\u00e1 m\u00e1s r\u00e1pida que PHP 8.1.<\/p>\n\n\n\n<p>Mientras pruebas, clonas y observas los resultados, aseg\u00farate de tomarte el tiempo para tuitear un enorme GRACIAS a todas las personas que hicieron posible este lanzamiento. Muestra tu aprecio en <a rel=\"noreferrer noopener\" href=\"https:\/\/twitter.com\/php_net\" target=\"_blank\">twitter.com\/php_net<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"UPDATENos alegra anunciar que PHP 8.2 ya se considera estable y se ha implementado en todos los servidores de SiteGround. Una vez m\u00e1s, estamos entre las primeras empresas en tenerlo ya disponible en nuestra plataforma de hosting. Lee este art\u00edculo de blog para obtener m\u00e1s informaci\u00f3n sobre las nuevas caracter\u00edsticas de la \u00faltima versi\u00f3n de&hellip;","protected":false},"author":81,"featured_media":14720,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2532,2533],"tags":[],"class_list":["post-14488","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desarrollo","category-novedades-de-producto"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.2 (Yoast SEO v24.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Versi\u00f3n candidata de PHP 8.2 en los servidores de SiteGround<\/title>\n<meta name=\"description\" content=\"Versi\u00f3n candidata de PHP 8.2 disponible en los servidores de SiteGround. Descubre todas las nuevas caracter\u00edsticas de PHP 8.2 y lo que quedar\u00e1 obsoleto.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Versi\u00f3n candidata de PHP 8.2 en los servidores de SiteGround\" \/>\n<meta property=\"og:description\" content=\"Versi\u00f3n candidata de PHP 8.2 disponible en los servidores de SiteGround. Descubre todas las nuevas caracter\u00edsticas de PHP 8.2 y lo que quedar\u00e1 obsoleto.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/\" \/>\n<meta property=\"og:site_name\" content=\"SiteGround\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-09T12:01:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-12-15T12:47:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2022\/12\/PHP_8.2_Beta_blog_Stable-Release_1400x700-1.jpg\" \/>\n<meta name=\"author\" content=\"Cal Evans\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Versi\u00f3n candidata de PHP 8.2 en los servidores de SiteGround\" \/>\n<meta name=\"twitter:description\" content=\"Versi\u00f3n candidata de PHP 8.2 disponible en los servidores de SiteGround. Descubre todas las nuevas caracter\u00edsticas de PHP 8.2 y lo que quedar\u00e1 obsoleto.\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cal Evans\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/\"},\"author\":{\"name\":\"Cal Evans\",\"@id\":\"https:\/\/newblog.siteground.com\/es\/#\/schema\/person\/b7d955fe8f207e8e13a00552dc043fff\"},\"headline\":\"Versi\u00f3n PHP 8.2 ya estable y disponible en los servidores de SiteGround\",\"datePublished\":\"2022-12-09T12:01:00+00:00\",\"dateModified\":\"2022-12-15T12:47:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/\"},\"wordCount\":1860,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/newblog.siteground.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2022\/12\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg\",\"articleSection\":[\"Desarrollo\",\"Novedades de producto\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/\",\"url\":\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/\",\"name\":\"Versi\u00f3n candidata de PHP 8.2 en los servidores de SiteGround\",\"isPartOf\":{\"@id\":\"https:\/\/newblog.siteground.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2022\/12\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg\",\"datePublished\":\"2022-12-09T12:01:00+00:00\",\"dateModified\":\"2022-12-15T12:47:21+00:00\",\"description\":\"Versi\u00f3n candidata de PHP 8.2 disponible en los servidores de SiteGround. Descubre todas las nuevas caracter\u00edsticas de PHP 8.2 y lo que quedar\u00e1 obsoleto.\",\"breadcrumb\":{\"@id\":\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#primaryimage\",\"url\":\"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2022\/12\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg\",\"contentUrl\":\"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2022\/12\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg\",\"width\":1400,\"height\":700},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/newblog.siteground.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Versi\u00f3n PHP 8.2 ya estable y disponible en los servidores de SiteGround\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/newblog.siteground.com\/es\/#website\",\"url\":\"https:\/\/newblog.siteground.com\/es\/\",\"name\":\"El blog de SiteGround\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/newblog.siteground.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/newblog.siteground.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/newblog.siteground.com\/es\/#organization\",\"name\":\"SiteGround Espa\u00f1a\",\"url\":\"https:\/\/newblog.siteground.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/newblog.siteground.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2025\/01\/cropped-Siteground-Logo-on-white.jpg\",\"contentUrl\":\"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2025\/01\/cropped-Siteground-Logo-on-white.jpg\",\"width\":166,\"height\":250,\"caption\":\"SiteGround Espa\u00f1a\"},\"image\":{\"@id\":\"https:\/\/newblog.siteground.com\/es\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/newblog.siteground.com\/es\/#\/schema\/person\/b7d955fe8f207e8e13a00552dc043fff\",\"name\":\"Cal Evans\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/newblog.siteground.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b8191d355780536d1c461f7e25b75129?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b8191d355780536d1c461f7e25b75129?s=96&d=mm&r=g\",\"caption\":\"Cal Evans\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/calevans\/\"],\"url\":\"https:\/\/newblog.siteground.com\/es\/author\/calevans\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Versi\u00f3n candidata de PHP 8.2 en los servidores de SiteGround","description":"Versi\u00f3n candidata de PHP 8.2 disponible en los servidores de SiteGround. Descubre todas las nuevas caracter\u00edsticas de PHP 8.2 y lo que quedar\u00e1 obsoleto.","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:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/","og_locale":"en_US","og_type":"article","og_title":"Versi\u00f3n candidata de PHP 8.2 en los servidores de SiteGround","og_description":"Versi\u00f3n candidata de PHP 8.2 disponible en los servidores de SiteGround. Descubre todas las nuevas caracter\u00edsticas de PHP 8.2 y lo que quedar\u00e1 obsoleto.","og_url":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/","og_site_name":"SiteGround","article_published_time":"2022-12-09T12:01:00+00:00","article_modified_time":"2022-12-15T12:47:21+00:00","og_image":[{"url":"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2022\/12\/PHP_8.2_Beta_blog_Stable-Release_1400x700-1.jpg","type":"","width":"","height":""}],"author":"Cal Evans","twitter_card":"summary_large_image","twitter_title":"Versi\u00f3n candidata de PHP 8.2 en los servidores de SiteGround","twitter_description":"Versi\u00f3n candidata de PHP 8.2 disponible en los servidores de SiteGround. Descubre todas las nuevas caracter\u00edsticas de PHP 8.2 y lo que quedar\u00e1 obsoleto.","twitter_misc":{"Written by":"Cal Evans","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#article","isPartOf":{"@id":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/"},"author":{"name":"Cal Evans","@id":"https:\/\/newblog.siteground.com\/es\/#\/schema\/person\/b7d955fe8f207e8e13a00552dc043fff"},"headline":"Versi\u00f3n PHP 8.2 ya estable y disponible en los servidores de SiteGround","datePublished":"2022-12-09T12:01:00+00:00","dateModified":"2022-12-15T12:47:21+00:00","mainEntityOfPage":{"@id":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/"},"wordCount":1860,"commentCount":0,"publisher":{"@id":"https:\/\/newblog.siteground.com\/es\/#organization"},"image":{"@id":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#primaryimage"},"thumbnailUrl":"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2022\/12\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg","articleSection":["Desarrollo","Novedades de producto"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/","url":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/","name":"Versi\u00f3n candidata de PHP 8.2 en los servidores de SiteGround","isPartOf":{"@id":"https:\/\/newblog.siteground.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#primaryimage"},"image":{"@id":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#primaryimage"},"thumbnailUrl":"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2022\/12\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg","datePublished":"2022-12-09T12:01:00+00:00","dateModified":"2022-12-15T12:47:21+00:00","description":"Versi\u00f3n candidata de PHP 8.2 disponible en los servidores de SiteGround. Descubre todas las nuevas caracter\u00edsticas de PHP 8.2 y lo que quedar\u00e1 obsoleto.","breadcrumb":{"@id":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#primaryimage","url":"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2022\/12\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg","contentUrl":"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2022\/12\/PHP_8.2_Beta_blog_Stable-Release_1400x700.jpg","width":1400,"height":700},{"@type":"BreadcrumbList","@id":"https:\/\/newblog.siteground.com\/es\/version-candidata-php-8-2-servidores-siteground\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/newblog.siteground.com\/es\/"},{"@type":"ListItem","position":2,"name":"Versi\u00f3n PHP 8.2 ya estable y disponible en los servidores de SiteGround"}]},{"@type":"WebSite","@id":"https:\/\/newblog.siteground.com\/es\/#website","url":"https:\/\/newblog.siteground.com\/es\/","name":"El blog de SiteGround","description":"","publisher":{"@id":"https:\/\/newblog.siteground.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/newblog.siteground.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/newblog.siteground.com\/es\/#organization","name":"SiteGround Espa\u00f1a","url":"https:\/\/newblog.siteground.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/newblog.siteground.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2025\/01\/cropped-Siteground-Logo-on-white.jpg","contentUrl":"https:\/\/newblog.siteground.com\/es\/wp-content\/uploads\/sites\/4\/2025\/01\/cropped-Siteground-Logo-on-white.jpg","width":166,"height":250,"caption":"SiteGround Espa\u00f1a"},"image":{"@id":"https:\/\/newblog.siteground.com\/es\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/newblog.siteground.com\/es\/#\/schema\/person\/b7d955fe8f207e8e13a00552dc043fff","name":"Cal Evans","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/newblog.siteground.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b8191d355780536d1c461f7e25b75129?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b8191d355780536d1c461f7e25b75129?s=96&d=mm&r=g","caption":"Cal Evans"},"sameAs":["https:\/\/www.linkedin.com\/in\/calevans\/"],"url":"https:\/\/newblog.siteground.com\/es\/author\/calevans\/"}]}},"_links":{"self":[{"href":"https:\/\/newblog.siteground.com\/es\/wp-json\/wp\/v2\/posts\/14488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/newblog.siteground.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/newblog.siteground.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/newblog.siteground.com\/es\/wp-json\/wp\/v2\/users\/81"}],"replies":[{"embeddable":true,"href":"https:\/\/newblog.siteground.com\/es\/wp-json\/wp\/v2\/comments?post=14488"}],"version-history":[{"count":8,"href":"https:\/\/newblog.siteground.com\/es\/wp-json\/wp\/v2\/posts\/14488\/revisions"}],"predecessor-version":[{"id":14723,"href":"https:\/\/newblog.siteground.com\/es\/wp-json\/wp\/v2\/posts\/14488\/revisions\/14723"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/newblog.siteground.com\/es\/wp-json\/wp\/v2\/media\/14720"}],"wp:attachment":[{"href":"https:\/\/newblog.siteground.com\/es\/wp-json\/wp\/v2\/media?parent=14488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/newblog.siteground.com\/es\/wp-json\/wp\/v2\/categories?post=14488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/newblog.siteground.com\/es\/wp-json\/wp\/v2\/tags?post=14488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}