WordPress y la programación orientada a objetos: una descripción general

Publicado: 2021-04-20

Si eres un desarrollador de WordPress, es probable que escribas tu código de forma procedimental. Establece algunos pasos ordenados simples y los sigue para lograr el resultado deseado y resolver un problema. Un ejemplo simple es un bucle de WordPress como el que se muestra a continuación:

 <?php if ( have_posts() ) { while ( have_posts() ) { the_post(); // // Post Content here // } // end while } // end if ?>

En un ciclo, primero verifica si tiene publicaciones que corresponden a la consulta en ejecución y, de ser así, comienza a recorrer las publicaciones con el ciclo while. Lo mismo ocurre con cada función personalizada que insertará en el archivo functions.php .

En este artículo, nos alejaremos de la programación procedimental y veremos un estilo de programación llamado Programación Orientada a Objetos (POO). Examinaremos en qué se diferencia de lo que ha usado hasta ahora como estilo de programación y veremos algunas de sus ventajas. Pero lo más importante, explicaremos cómo funcionan los conceptos orientados a objetos en un entorno de WordPress y la relación entre ellos.

Lo que nos gustaría establecer antes de profundizar en esto es que es importante que aprenda sobre el papel de la programación orientada a objetos y cuándo es adecuado para su uso. Aprender a crear un complemento o tema orientado a objetos puede ser adecuado para su proyecto, pero es importante que comprenda cuándo es este el caso. Con suerte, este artículo lo ayudará a comprender cuándo y por qué un determinado proyecto puede ser adecuado para escribirse en código orientado a objetos.

El problema

El propio WordPress ya te ha empujado a pensar de forma procedimental. Y, aunque WordPress usa objetos PHP todo el tiempo, no significa que WordPress en sí esté orientado a objetos. Esta es una mala interpretación común de lo que es OOP y la razón por la que muchas personas creen que WordPress está orientado a objetos, aunque no lo es.

Es importante aclarar que no estamos diciendo que deba abstenerse de usar programación procedimental, pero es cierto que existen limitaciones en este estilo de codificación. Por ejemplo, al personalizar un tema o un complemento, es probable que logre la salida HTML deseada escribiendo código de forma procedimental. Pero, ¿qué pasa con la escalabilidad y el mantenimiento futuro?

Al crear un complemento personalizado, es muy importante que haga un balance y evalúe qué tan escalable será. Por ejemplo, probablemente querrá poder hacer crecer su complemento agregando más funciones a medida que el complemento madure. Es en este punto donde comenzarás a tener dificultades para organizar tu código cuando codificas de manera procedimental.

Pero incluso si no está codificando complementos, con la programación de procedimientos siempre corre el riesgo de llegar a un punto en el que ya no está seguro de cómo encaja todo. Como resultado, cada pequeño cambio que realice puede tener consecuencias no deseadas.

La programación orientada a objetos se utiliza para resolver problemas más complicados. Puede compartir el mismo objetivo con la programación procedimental, pero en muchos casos ofrece una forma de trabajo superior. Le permite crear soluciones audaces a un problema que son reutilizables, organizadas y seguras.

Cómo la programación orientada a objetos resuelve problemas

La programación orientada a objetos tiene dos conceptos importantes: Clases y Objetos .

Las clases son esencialmente una plantilla utilizada para hacer objetos. Cada objeto tiene sus propios métodos y conjunto de propiedades y el valor de esas propiedades puede variar.

Entonces, antes de seguir adelante, es vital asegurarse de que entendemos qué es un Objeto. Analicemos una oración simple como ejemplo:

'Yo como manzanas verdes'.

Apple es el Objeto, el verde es el color del Objeto (una propiedad del Objeto) y el verbo 'comer' es el método (función).

Una clase define las propiedades y el comportamiento de todos los objetos que la utilizan. La solución de problemas con OOP se logra combinando estos 'ladrillos' de programación de la manera correcta.

Antes de sumergirse, un primer paso importante es tomarse un tiempo para diseñar la solución propuesta. En esencia, lo que tienes que hacer es:

  1. Defina el problema y qué debe hacer el complemento para resolverlo
  2. Describir las clases y sus relaciones, así como la interacción entre los objetos.
  3. Convierte todo en código
  4. Revisar y probar el proyecto.

Mientras esté en este paso, tenga en cuenta que tendrá suerte si lo hace perfecto en el primer intento. Deberá comenzar de nuevo hasta que obtenga el concepto correcto que resuelva el problema. Considéralo como parte de un proceso creativo que te ofrecerá un conjunto de herramientas que luego podrás usar en equipo sin conflictos.

En un próximo artículo relacionado con OOP, demostraremos un ejemplo simple que dará vida a toda la teoría anterior.

Las características de la programación orientada a objetos

Antes de entrar en las características de la programación orientada a objetos, veamos si podemos aclarar más cómo funciona con una metáfora simple.

Digamos que tenemos una caldera que usamos para hervir un poco de agua. Cuando usamos la máquina, lo hacemos de una manera determinada, la única que nos permite el fabricante. No podemos anular el funcionamiento de la caldera cuando pulsamos el botón de 'Encendido' y, para ser sinceros, tampoco querríamos ni necesitáramos hacerlo. Eso nos da dos ventajas muy importantes.

En primer lugar, la funcionalidad limitada (es decir, hervir un poco de agua) significa que el sistema es más robusto y más seguro. El conjunto de funciones limitadas y la provisión de solo un botón de 'Encendido/Apagado' significa que nosotros, como usuarios, no podemos acercarnos al mecanismo de la caldera. De forma predeterminada, esto significa que hay menos errores y el sistema es más sólido en su conjunto. La simplicidad de la operación también lo hace mucho más fácil de usar para casi cualquier persona que pueda usarlo.

Aloje su sitio web con Pressidium

GARANTÍA DE DEVOLUCIÓN DE DINERO DE 60 DÍAS

VER NUESTROS PLANES

Teniendo esto en cuenta, veamos cómo se relaciona esto con la programación orientada a objetos. En teoría, OOP tiene tres características valiosas: encapsulación, herencia y polimorfismo .

Lo que hace la encapsulación es agrupar los datos y el comportamiento dentro de una sola entidad. Dentro de la Clase, puede definir cómo se usará (botón de caldera) y controlar la visibilidad usando el etiquetado Público, Protegido o Privado en las Clases. Esto es lo que también lo convierte en un sistema muy seguro porque le brinda la capacidad de controlar quién tiene acceso. Esto también significa que es más fácil de mantener y usar.

La herencia se trata de ayudarlo a reutilizar el código entre sus clases. Un ejemplo de ello es cuando una clase se extiende a otra clase. Es posible que haya usado esto al extender la clase Walker para cambiar la salida HTML de datos en forma de árbol, como un menú o una estructura de comentarios. Comprender la relación entre sus clases le permitirá crear código orientado a objetos reutilizable.

Finalmente, el polimorfismo es lo que hace que todas esas relaciones funcionen juntas, lo que define qué tienen en común tus clases, cómo reutilizar estos elementos comunes y si están relacionados con algo más.

Conclusión

Sin algunos ejemplos concretos, es probable que todo lo anterior siga siendo un poco confuso. Sin embargo, es importante explicar en detalle la teoría detrás de la programación orientada a objetos y en futuros artículos avanzaremos con algunos ejemplos útiles para que pueda ver cómo usar este emocionante método de programación en el mundo real.

Nuestro objetivo es que cuando concluya la lectura de nuestra serie de artículos sobre programación orientada a objetos, tenga confianza para utilizar este método de programación en una amplia variedad de situaciones. Mientras tanto, es posible que desee continuar leyendo sobre programación orientada a objetos en Wikipedia.

Haga clic aquí para leer la Parte 2 de nuestra Serie de Programación Orientada a Objetos