Resumen de 2022: descubre nuestros hitos y gana

2022 está llegando a su fin, y aquí en SiteGround, marcamos otro año ganador y lleno de acontecimientos. Trabajamos duro para mejorar nuestros servicios y herramientas y ajustar nuestro entorno de alojamiento web para que sea aún más rápido y seguro para nuestros clientes.

¡Ahora es el momento de concluir y recordar todo el año! ¡Ve a nuestro Resumen 2022, descubre nuestros hitos, acumula puntos y participa para ganar un par de auriculares BOSE personalizados con el logo de SiteGround y cancelación de ruido

Ver Resumen 2022

[subscribe_cta]

Optimizaciones tecnológicas para sitios web más rápidos y seguros

El año pasado, llevamos la seguridad y velocidad de nuestro entorno de hosting a otro nivel. Algunas de las mejoras en el servicio y herramientas de vanguardia que lanzamos son: 

Herramientas de WordPress mejoradas para todos

Nuestros plugins personalizados para una velocidad y seguridad inigualables: SiteGround Optimizer y SiteGround Security, ya se han instalado juntos casi 3 millones de veces. Este año marcó otro gran paso en este viaje, después de que lanzásemos ambos plugins para uso gratuito para todos, independientemente de la plataforma de alojamiento web que estés utilizando. En menos de un año, SiteGround Optimizer ha tenido más de 1.000.000 de instalaciones activas además de los más de 2 millones de usuarios de SiteGround y está clasificado entre los 3 mejores plugins de optimización de rendimiento. El plugin SiteGround Security tiene cerca de 1 millón de instalaciones y se sitúa como uno de los plugins de seguridad de WordPress con mejor valoración por la comunidad.

En 2022, también aumentamos el límite de memoria de WordPress para todos los clientes de SiteGround en respuesta a la creciente demanda de la comunidad de aumentar el valor de memoria WP predeterminado y adaptarse al desarrollo cada vez mayor de los sitios de WordPress. El nuevo límite de 256 MB en nuestros servidores significa que nuestros clientes de WordPress tienen más espacio para expandir sus sitios WordPress desde el primer momento. 

Centro de datos expandido y red CDN 

En 2022, presentamos 4 nuevos centros de datos y 7 ubicaciones de CDN en Europa y EE.UU. Nuestras nuevas ubicaciones geográficas proporcionan un mejor rendimiento del sitio web y una entrega de contenido más rápida.

Nuestros clientes ahora pueden alojar sus sitios web lo más cerca posible de donde están sus visitantes para garantizar un tiempo de carga de la página más rápido y una mejor experiencia de usuario. 

98% Tasa de satisfacción del cliente

Estar orientados al cliente siempre ha sido una piedra angular para nosotros. Los comentarios de nuestros clientes son la fuerza impulsora detrás de todo lo que hacemos en SiteGround. Por esta razón, cada año le pedimos a nuestros clientes que califiquen nuestros esfuerzos y servicios durante todo el año.

Este año nuestra tasa de satisfacción del cliente se mantuvo estable en un 98% en nuestra encuesta anual de fin de año. Y para compartir nuestra gratitud por las opiniones de nuestros clientes, plantaremos un árbol a través de TreeNation para cada persona que haya completado la encuesta.

Explora nuestros hitos y gana auriculares Bose

¡Revive estos y más logros anuales en nuestro Resumen 2022 de SiteGround y participa en nuestro sorteo para tener la oportunidad de ganar un par de auriculares BOSE personalizados con el logo de SiteGround! Y eso no es todo: consigue participaciones adicionales en el sorteo compartiendo nuestro resumen en redes sociales con #siteground22 antes del 9 de enero de 2023.

¡2023 está a la vuelta de la esquina! Carga energía con los hitos de SiteGround en 2022 y prepárate para lo que el nuevo año tiene reservado para ti.

Ver Resumen 2022

Nuevos informes mensuales de seguridad ya disponibles

¿Sabes cómo de seguro es tu sitio web y si el nivel de seguridad está cambiando con el tiempo? ¿Alguna vez te has preguntado cuántos ataques reales hacia tu sitio se están mitigando? ¿Quieres saber si no has hecho algo sencillo que pueda proteger tu sitio de incidentes?

Ahora, con los informes de seguridad mensuales de SiteGround, puedes obtener toda esa información y más, directamente en tu bandeja de entrada. Simplemente regístrate y comienza a recibir un informe mensual que abarca lo que SiteGround está haciendo para salvaguardar tu sitio web y destaca las medidas de seguridad que puedes haber pasado por alto. 

¿Qué hay en los informes de seguridad mensuales?

Cada mes realizaremos comprobaciones de seguridad automatizadas para tu sitio web que cubren la protección contra malware, certificados SSL, exploits de software, ataques de fuerza bruta y otras áreas de seguridad. Según nuestras comprobaciones, recibirás un resumen de los resultados, que incluye una puntuación de seguridad total del sitio, una puntuación desglosada para cada comprobación de seguridad y consejos prácticos si alguna área necesita tu atención. Los informes de seguridad mensuales serán tu lugar de referencia para obtener una descripción general del estado de seguridad de tu sitio web.

Los beneficios de los informes de seguridad mensuales 

Información de seguridad del sitio en un solo lugar

Realizar comprobaciones de seguridad de sitios web manualmente puede ser una inversión de tiempo, esfuerzo y dinero valiosos a la que la mayoría de los propietarios de sitios web no pueden destinar recursos. Con los informes de seguridad mensuales, SiteGround se encargará del trabajo pesado por ti, realizando todas las comprobaciones de seguridad necesarias y entregando informes fáciles de usar directamente en tu bandeja de entrada. Para que puedas saber todo sin esfuerzo. 


Formato fácil de entender

Con nuestro diseño fácil de usar, puedes escanear rápidamente el informe e identificar fácilmente las áreas que necesitan tu atención, si las hay. Todo lo que tienes que hacer es seguir nuestros sencillos códigos de color: verde cuando todo está bien; amarillo: necesita mejoras; rojo: definitivamente necesita atención. También recibes una puntuación general del mes e información sobre cómo ha cambiado en comparación con el mes anterior. 

Consejos prácticos cuando sea necesario

Si hemos identificado un área de la seguridad de tu sitio que puede mejorarse, el informe incluirá instrucciones fáciles de seguir sobre lo que se puede hacer. Por ejemplo, si detectamos que no tienes un certificado SSL instalado en tu sitio, te proporcionará un enlace a la información sobre cómo configurarlo.

Confianza en que tu sitio web está protegido

Al suscribirte a nuestros informes de seguridad mensuales, puedes monitorizar fácilmente lo que hacemos de forma regular para mantener tu sitio web seguro. Cada mes, verás información como cuántos ataques de vulnerabilidad de software se han prevenido; cuántas direcciones IP maliciosas se impidió que llegasen a tu sitio web; con cuántas copias de seguridad puedes contar, etc. Asegurarte de que tu sitio sea seguro es una parte enorme de nuestro trabajo como hosting, y con los informes puedes estar atento a este proceso.

¿Cómo obtener los informes de seguridad mensuales? 

A partir del próximo año empezaremos a enviar los informes de forma proactiva a todos nuestros clientes. Sin embargo, puedes darte prisa e iniciar sesión tú mismo hoy y ser de los primeros en recibir tu informe a principios de enero de 2023.

Para suscribirte a tu informe ahora, simplemente ve a: Área de Usuario > Preferencias de notificación > Informes de seguridad mensuales.

Los informes se envían al comienzo de cada mes para los sitios que han estado activos durante más de 30 días y tienen sus dominios apuntados a SiteGround. Puedes ver información detallada sobre la suscripción, el contenido y el cálculo de la puntuación en nuestro artículo “Informes mensuales de seguridad explicados”.

Regístrate hoy y duerme tranquilo, sabiendo que toda la información de seguridad relevante de tu sitio web está al alcance de tu mano.

Versión PHP 8.2 ya estable y disponible en los servidores de SiteGround

UPDATE

Nos alegra anunciar que PHP 8.2 ya se considera estable y se ha implementado en todos los servidores de SiteGround. Una vez más, estamos entre las primeras empresas en tenerlo ya disponible en nuestra plataforma de hosting. Lee este artículo de blog para obtener más información sobre las nuevas características de la última versión de PHP.

¡Ha llegado la época del año en que todos los buenos desarrolladores de PHP han estado esperando! Santa (ElePHPant) ha llegado temprano como de costumbre en SiteGround y ha traído muchas cosas nuevas que facilitan a los desarrolladores trabajar en sus proyectos.

Ahora mismo, PHP 8.2 se encuentra en estado Release Candidate 1 (RC1). Estamos en las últimas etapas de desarrollo y corrección de errores para esta versión y solo unos pocos proveedores de hostings como SiteGround están poniendo ahora el RC a disposición de sus clientes para que lo prueben. De hecho, la nueva versión de PHP aún no está en producción, pero es posible usar el RC para probarla.

Así que echemos un vistazo a algunas de las próximas noticias.

Nuevas funciones

Primero, echemos un vistazo a algunas de las nuevas características que serán de interés para los desarrolladores de PHP. Ésta no es una lista exhaustiva de las novedades, más bien es una lista corta de las cosas que creo que interesarán a la mayoría de los desarrolladores de PHP.

Clases readonly 

En PHP 8.1 conseguimos propiedades readonly para las clases. Esto fue un gran salto hacia adelante para muchos proyectos. Sin embargo, todavía había un pequeño agujero que necesitaba ser tapado: las clases. Sí, 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 readonly.

readonly class MyClass {
    public int $myProp;
    public string $myOtherProp;
    public __construct(string $myOtherProp, int $myProp) 
 {
    $this->myProp = $myProp;
    $this->myOtherProp = $myOtherProp;
  }
}

Aquí tenemos una clase definida como readonly. Tenemos 2 propiedades de la clase y ambas son inherentemente solo lectura. Las reglas de solo lectura de PHP 8.1 aún se aplican y solo puedes inicializar la propiedad una vez, después de lo cual queda configurada.

$myObj = new MyClass(‘Cal was here’,42);

Sin embargo, una vez inicializadas, ahora son inmutables.

$myObj->myProp = ‘Cal is no longer here’;
// Fatal Error: Uncaught Error: Cannot modify readonly property MyClass::myProp

Otro comportamiento de la clase readonly es que las propiedades no se pueden agregar dinámicamente a la clase. A continuación, hablamos sobre la deprecación de las propiedades dinámicas y cómo esto es algo bueno. También hay una anotación que te permite ignorar esto. Sin embargo, si marcas una clase como readonly, no se puede sobrescribir.

Constantes en Traits

Los traits (rasgos) han estado con nosotros desde PHP 5.4. Han sido durante mucho tiempo la respuesta a la “composición sobre la herencia”. Ahora los traits obtienen una característica nueva e interesante, la capacidad de definir constantes en un trait.

trait MyTrait {
    private const MY_CONSTANT = 42;
}

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.

trait MyTrait {
private const MY_CONSTANT = 42;
public function meaningOfLife() : int
 {
   return self::MY_CONSTANT;
 }
}
class MyClass {
   use MyTrait;
}
$myObj = new MyClass();
echo $myObj->meaningOfLife(); // prints 42

Como todo en la vida, hay algunas reglas.

Los traits pueden definir constantes de clase. Si una clase usa ese trait, también puede definir la misma constante de clase siempre que tanto la visibilidad como el valor sean exactamente los mismos. Por lo tanto, el ejemplo anterior funciona, pero el siguiente desencadenará un error fatal.

trait MyTrait {
private const MY_CONSTANT = 42;
public function meaningOfLife() : int
 {
   return self::MY_CONSTANT;
 }
}
class MyClass {
    use MyTrait;
    public const MY_CONSTANT = 42;
}

Aún así, incluso con las reglas que debes seguir, éste es un verdadero paso hacia adelante. Los traits son una excelente manera de compartir código entre clases y ahora son aún más autónomos.

Extensión aleatoria 5.x + mejora de extensión aleatoria

El generador de números aleatorios de PHP original todavía está en el código base. Nunca ha sido genial y es absolutamente inútil para usos criptográficos. En PHP 7, conseguimos un par de funciones nuevas, random_int() y random_bytes(). Recorrieron un largo camino para solucionar los problemas, pero bajo el capó, son solo interfaces para el generador de números aleatorios del sistema operativo nativo. En ese momento, ésta era una buena solución, pero el problema es que es lento.

Ahora con PHP 8.2 no solo conseguimos un generador de números aleatorios completamente nuevo, sino que está integrado en PHP, y obtenemos una interfaz extensible orientada a objetos.

Éstos son en realidad dos RFC diferentes que estoy agrupando. Después de votar y aprobar la primera “Extensión aleatoria 5.x”, resultó que había algunos problemas con ella. Se preparó y votó una segunda RFC, “Mejora de extensión aleatoria”, para abordar los problemas encontrados con la primera.

El resultado final es un nuevo conjunto de clases que nos brinda mejores números pseudoaleatorios en PHP.

Si bien estamos obteniendo varios generadores de números aleatorios (RNG) nuevos, para simplificar, hablaré sobre la nueva clase Random\Engine\Secure.

$engine = new Random\Engine\Secure();
$randomString = $engine->generate(); // a random binary string
echo bin2hex($randomString); 

Ahora, si queremos hacer algo como ordenar una matriz, necesitamos uno de los nuevos objetos Randomizer.

$randomizer = new Random\Randomizer($engine);
$items = range(1, 10);
$randomizedItems = $randomizer->shuffleArray($items);
print_r($randomizedItems);

En el ejemplo anterior, usamos el motor Secure. El motor Secure no acepta una semilla (seed) y siempre generará una cadena que no se puede reproducir. Los motores que te permiten especificar una semilla producirán los mismos resultados cada vez que uses la misma semilla.

La clase Randomizer también proporciona muchos otros métodos que son realmente lo que buscan los desarrolladores de PHP.

  • getInt() : int
    This replaces the old mt_rand() function
  • getInt(int $min, int $max) : int
    This replaces both the old mt_rand() function as well as the newer random_int() function.
  • getBytes(int length): string
    This replaces the random_bytes() function 
  • shuffleArray(array $array): array
    This replaces the old shuffle_array() function
  • shuffleString(string $string): string
    This replaces the old str_shuffle() function

Entre otras cosas, dado que esto reúne todas las características de aleatorización en un área del motor, agiliza el código principal y facilitará las mejoras adicionales.

Gracias por todo y seguimos adelante

Todas las cosas buenas llegan a su fin y eso incluye algunas características y comandos de PHP. Echemos un vistazo a un par de deprecaciones importantes que, si no tienes cuidado, terminarán causándote problemas.

Propiedades dinámicas obsoletas 

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).

class MyClass {
  public string $name;
}
$myObj = new MyClass():
$myObj->nmae = ‘Cal Evans’;

Ten en cuenta que he escrito mal el nombre (name) de la propiedad. Sé que probablemente soy el único 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ón.

Comenzando con PHP 8.2, esto emitirá un DEPRECATED WARNING (ADVERTENCIA DE DEPRECACIÓN).

Hay 3 excepciones a esta nueva regla. 

  1. Cualquier instancia de StdClass aún podrá aceptar propiedades dinámicas.
  2. Cualquier clase con métodos __get() y __set() todavía aceptará cualquier propiedad.
  3. Cualquier clase que tenga la anotación del compilador #[AllowDynamicProperties]y cualquier subclase permitirá establecer propiedades dinámicas.

Entonces, aunque no todo está perdido para aquellos que dependen de esta “característica” de PHP, si todavía vas a usarla, tendrás que hacer algunos cambios en tu código.

La buena noticia es que todo lo que sucederá en este momento es que la advertencia emitida aparecerá en los archivos de registro. Por lo tanto, si bien puede llenar tus archivos de registro recordándote que necesitas arreglar esto, PHP 8.2 no romperá tu código. Eso sucederá en PHP 9.0 cuando la advertencia, y la capacidad de agregar propiedades dinámicas automáticamente, se elimine de PHP.

(Parcial) Deprecación ${} string interpolation

Esta es otra deprecación que al principió pensé que iba a ser un gran problema. Resulta que probablemente no afectará a muchos desarrolladores.

Hay 4 formas de implementar la sintaxis “{$variableName}”, 2 que tienen sentido y dos que no. Las dos que no lo tienen, se van. Veámoslas juntos:

echo “$meaningOfLife”;

Con diferencia, esta es la versión más común de interpolación de cadenas. Simplemente coloca la variable en una cadena con comillas dobles. Si lo haces así, entonces todo bien, esta es una de las dos formas que se quedan.

echo “{$meaningOfLife}”;
echo “{$dogulasAdams->meaningOfLife()}”;

Siempre he considerado esta manera de la “vieja escuela”. Sí, solíamos hacerlo en el pasado, pero no lo he hecho de esta manera en mucho tiempo. Aún así, funciona, es limpio y es fácil de entender. Esta es la otra forma que se queda.

Este es también el único método que te permite usar propiedades y métodos de objeto. Por lo tanto, si deseas usar la interpolación de cadenas con un objeto, necesitarás este método.

echo “${meaningOfLife}”;

Esta se va a ir. Sí, hace lo mismo que las dos primeras, pero es un poco más confuso porque $ está fuera de las llaves.

$fourtyTwo = 42;
$meaningOfLife = ‘fourtyTwo’;
echo “${meaningOfLife}”;

Finalmente, tenemos la forma en que puedes usar “variables variables” desde dentro de la interpolación de cadenas. Esto es simplemente demasiados niveles de indirección. En el código de arriba, eventualmente llegamos al punto donde hacemos echo out 42, pero tomamos el camino más largo.

A partir de PHP 8.2, las dos últimas estructuras emitirán una ADVERTENCIA DE DEPRECACIÓN en tus archivos de registro. En PHP 9.0, dejarán de funcionar por completo y harán que tu programa no funcione (o lanzará un error que puedes detectar, pero del que probablemente no puedas recuperarte).

En resumen 

Ésta es la primera versión candidata definitiva de PHP 8.2. No la reproduzcas en ningún sitio en producción. Si quieres probarla con un sitio existente, configura un nuevo sitio de pruebas, clona tu sitio de producción en él y prueba de ese modo. Cuando hayas terminado, puedes simplemente eliminarlo.

Mientras trabajas en tu nuevo entorno de prueba, comprueba los archivos de registro después de cada prueba. Asegúrate de que no haya errores y busca nuevas advertencias.

Si PHP 8.2 es algo así como PHP 8.0 y PHP 8.1, no espero que el código PHP moderno tenga ningún problema con él. Afortunadamente, los ingenieros de SiteGround hacen que sea increíblemente fácil para ti probar las cosas para asegurarte de que tu sitio pueda funcionar lo más rápido posible con PHP 8.2.

Hablando de rendimiento, PHP 8.2 aún no se ha evaluado adecuadamente, pero esperamos que cada versión de PHP sea un poco más rápida 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ón será más rápida que PHP 8.1.

Mientras pruebas, clonas y observas los resultados, asegúrate de tomarte el tiempo para tuitear un enorme GRACIAS a todas las personas que hicieron posible este lanzamiento. Muestra tu aprecio en twitter.com/php_net.