✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Evitar class_exists en el código de WordPress orientado a objetos

9

Si escribe código orientado a objetos para WordPress (generalmente dentro del contexto de los complementos), es probable que se encuentre con una verificación class_exists antes de inicializar una clase. Pero deberíamos comenzar a evitar class_exists en gran parte de nuestro código en este punto (con algunas excepciones que describiré a continuación).

Dependiendo de la versión de PHP que esté usando, esto tiene sentido. O lo hizo en algún momento. A partir de PHP 5.3.0, esto no es necesario. En cambio, es una mejor práctica usar espacios de nombres.

Evitar class_exists

Puede ver todos los requisitos para varias versiones de WordPress en esta página, por lo que si está trabajando con versiones heredadas de WordPress, entonces la verificación completa de class_exists podría valer la pena.

Aún así, hay una nota importante :

Nota: si se encuentra en un entorno heredado en el que solo tiene versiones anteriores de PHP o MySQL, WordPress también funciona con PHP 5.2.4+ y MySQL 5.0+, pero estas versiones han alcanzado el fin de vida oficial y, como tal, pueden exponer su sitio a vulnerabilidades de seguridad.

Pero para la mayoría de nosotros, los entornos de alojamiento modernos admiten al menos PHP 5.3.0, si no superior, y por eso, no tenemos que usar class_exists.

Dicho esto, no es raro ver algo como esto :

O así :

Hace años, yo también escribía código como este. A veces era para interactuar con un código base preexistente. Otras veces, fue porque no sabía nada mejor. La cuestión es que esto se ha convertido en algo que vemos en el código basado en WordPress cuando no tenemos que usarlo.

De hecho, diría que no deberíamos usarlo más.

Pero cuanto más código escribes y más código lees, más aprendes, ¿verdad? Esa es parte de la razón de los espacios de nombres y la carga automática.

Entonces, ¿cómo se escribiría el código anterior?

Tal vez así :

Aún así, esto plantea la pregunta para algunos: ¿Cómo ayudan los espacios de nombres en lugar de usar class_exists?

Idealmente, si existe la misma clase dentro de un espacio de nombres, entonces hay un problema con el espacio de nombres. Recuerde que puede pensar en un espacio de nombres como un paquete formado por piezas únicas. Y debido a que son únicos, nunca debería haber otra pieza o, en esta clase, otra clase igual.

Con ese fin, en lugar de usar comprobaciones class_exists, trate de usar espacios de nombres. Por supuesto, no estoy diciendo que regrese y refactorice todo su código, no lo he hecho, pero eso no significa que el código que escribo o reviso incluya el uso o recomendaciones para.

Es un cambio fácil que puede ser de gran ayuda para mantener el código más fácil de leer, lleno de menos condicionales (una publicación para otro momento) y mantenerlo mucho más organizado.

Fuente de grabación: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More