Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Creative Coding

Uso de WordPress para el desarrollo de aplicaciones web: el modelo conceptual

Read Time: 7 mins
This post is part of a series called Using WordPress for Web Application Development.
WordPress for Web App Development: Rethinking Architecture
WordPress for Web App Development: Events, Actions, and Filters

Spanish (Español) translation by Andrea Jiménez (you can also view the original English article)

Con la gente comenzando a darse cuenta del potencial de WordPress como base de una aplicación en lugar de solo un sistema de administración de contenido o una plataforma de blogs, esta serie se enfoca en cómo WordPress puede usarse para tales proyectos.

Una de las cosas más importantes a tener en cuenta es que WordPress no está destinado a ser la solución definitiva para la creación de aplicaciones web. De hecho, no creo que ningún foundation o framework esté destinado a ser la solución definitiva.

En su lugar, tenemos una serie de opciones diferentes, todas se prestan a mejores situaciones que otras, y WordPress no es diferente. A lo largo de esta serie, seguiremos analizando cómo se pueden crear aplicaciones web con WordPress y qué situaciones se prestan mejor al foundation. Sin embargo, necesitamos continuar nuestra discusión sobre cómo funciona WordPress para que podamos comenzar a hablar sobre cómo construir aplicaciones en él.

En el artículo anterior, discutimos cuántos frameworks ofrecen un enfoque MVC para el desarrollo, pero también analizamos el modelo basado en eventos de WordPress. En esta publicación, analizaremos más profundamente el paradigma impulsado por eventos que emplea WordPress y por qué es importante.

La verdad es que muchas personas están familiarizadas con este paradigma, simplemente no están familiarizadas con las convenciones de nomenclatura. Al final de este artículo, deberíamos tener una comprensión clara de qué es la programación basada en eventos, cómo funciona, cómo se implementa en WordPress y cómo debemos pensar en esto cuando venimos de otros patrones como Model-View-Controller.


Programación basada en eventos

En el último post, resumimos la programación basada en eventos con la siguiente idea:

En cambio, la programación basada en eventos funciona con la premisa de que "algo sucedió".  De ahí el nombre de las acciones en la jerga de WordPress (por supuesto, también tenemos filtros, pero ahorita hablaré de ellos).

Y eso está bien para una definición de trabajo de eventos, especialmente a un alto nivel. Sin embargo, si quieres ver más a fondo cómo se ve esto desde un punto de vista práctico, es decir, desde cómo lo implementa WordPress, entonces posiblemente lo mejor que puedes hacer es comprender los eventos.

Pero aún más que eso, es importante comprender el ciclo de vida de la página de WordPress, dónde ocurren los eventos y cómo nosotros, como desarrolladores, podemos conectarnos a ellos para realizar una determinada tarea.


Comprender los eventos

Como ya mencionamos, en la programación basada en eventos, la idea de los eventos es simplemente que algo pasó. Seguimos reiterando eso, pero ¿qué significa realmente?

En el contexto de una sola carga de página, hay una serie de cosas que se producen:

  • Se recuperan JavaScript y las hojas de estilo.
  • Las consultas se ejecutan en la base de datos para recuperar datos
  • La información de la base de datos se emite dentro del contexto del marcado.
  • La página se presenta al usuario
  • ... y así sucesivamente

Todos estos pueden ser considerados eventos, pero cada uno de ellos se compone de su propio conjunto de eventos más pequeños, es decir, puedes obtener realmente detalles sobre cuándo pasa algo.

Tomemos, por ejemplo, la idea de representar una solicitud típica y orientada al público para una página de WordPress. Si observas el documento Codex asociado, notarás que hay aproximadamente 50 acciones que ocurren, y esto no incluye acciones específicas de la publicación o la página.

Cada una de estas acciones se puede considerar un evento, y en el mundo de la programación basada en eventos, los eventos suelen estar expuestos de tal manera que nos permiten conectarnos con ellos y manipular la información antes de que se emita al cliente.

De ahí el nombre de los hooks.

Por supuesto, en WordPress, los hooks vienen en dos variedades: acciones y filtros. Aunque esta serie no se trata de un tutorial sólido sobre cada uno de ellos, es importante reconocer la diferencia entre ellos en lo que respecta al trabajo con WordPress.

Acciones

Las acciones son un tipo de hook que indica que algo pasó, y cuando eso ocurre, tenemos la capacidad de registrar nuestra propia funcionalidad de tal manera que podemos inyectar nuestro propio código (o incluso evitar que ciertas cosas sucedan).

Como resumí en mi serie sobre Acciones y Filtros:

Las acciones son eventos en el ciclo de vida de la página de WordPress cuando han ocurrido ciertas cosas: se cargan ciertos recursos, están disponibles ciertas instalaciones y, dependiendo de qué tan temprano se haya producido la acción, algunas cosas aún no cargan.

Es importante comprender las acciones disponibles para que sepas cuándo es el mejor momento para conectarte a un evento determinado, de modo que no estés impidiendo el rendimiento de la página, alterando potencialmente otros datos que vienen en sentido descendente, o para que estés manejando adecuadamente la información en el momento y lugar adecuados.

Filtros

Los filtros, por otro lado, son un tipo de hook que nos permite recibir cierta información, manipularla y luego devolverla a WordPress antes de renderizarla en el navegador.

Por ejemplo, si observas el filtro the_content, notarás que si conectas una función a esta acción en particular, tu función recibirá el contenido. Esto significa que podrás manipular el contenido insertando información en él, eliminando información de él, o algo similar, antes de entregarlo de nuevo a WordPress para que lo procese el navegador.

Del mismo modo, resumí los filtros de mi serie sobre Acciones y Filtros así:

Los filtros son funciones a las que WordPress les pasa datos durante ciertos puntos del ciclo de vida de la página. Son los principales responsables de interceptar, administrar y devolver datos antes de enviarlos al navegador o guardar datos del navegador en la base de datos.

Entonces, dicho todo esto, las acciones y los filtros son ambos tipos de eventos que ocurren dentro del ciclo de vida de WordPress que nos permiten conectarnos a ellos e insertar nuestro propio código para su ejecución antes de que se procese en el navegador.

En resumen, el término "hooks" es un término general que se refiere tanto a acciones como a filtros, cada uno de los cuales tiene un propósito diferente.


¿Análogo a MVC?

Ahora, una de las cosas más comunes que he visto de gente que viene de un entorno diferente como Rails, CakePHP, ASP.NET u otros frameworks MVC, es cómo asignar su modelo conceptual de MVC al modelo de eventos de WordPress.

Con eso, me refiero a que tratan de encontrar analogías con modelos, vistas y controladores en el paradigma basado en eventos. Por ejemplo, algunos pueden intentar hacer lo siguiente:

  • "Si las vistas están pensadas para mostrar datos, seguramente para eso están las plantillas en WordPress." Bueno, sí, hasta cierto punto, pero las plantillas también se ven afectadas por varios hooks y llaman a ciertas funciones.
  • "Si los hooks se utilizan para organizar los datos entre la base de datos y las vistas, entonces son como los controladores."  Más o menos, pero también pueden representar una lógica específica de datos similar a un modelo, y también se pueden usar simplemente como ayudantes para formatear la información que se parece más a los ayudantes que a los controladores reales.
  • "Pero si las plantillas, o las vistas, pueden llamar a los controladores, o los hooks, entonces ¿dónde deja el modelo?" Exactamente, puedes racionalizar las similitudes que quieras, y puedes racionalizar algunas buenas, pero la verdad es que WordPress no es MVC.

Con ese fin, recomiendo tratar de evitar pensar en WordPress en el contexto de otro patrón. Tiene su propio patrón. Piénsalo en esos términos.

¡No se trata de la adaptación!

En resumen, llegar a WordPress desde otro framework que utiliza otro patrón de diseño u otro paradigma está bien, pero no se trata de hacer que WordPress se ajuste a tu anterior experiencia.

No puedes adaptar un patrón de diseño a otro y esperar obtener resultados de alta calidad.

El software no funciona así.

En cambio, al igual que lo haces con otros frameworks, debes pensar en términos de cómo funciona WordPress para poder construir correctamente las cosas en y para WordPress. Más adelante en la serie, veremos por qué WordPress es una opción sólida para aplicaciones web, pero antes de eso, creo que es importante comprender el patrón que implementa WordPress y cómo aprovecharlo mejor.


Ejemplos prácticos de eventos

En la siguiente publicación, veremos algunos ejemplos de cómo podemos conectar en eventos proporcionados por WordPress. Estos serán muy introductorios y los desarrolladores de WordPress más experimentados probablemente ya conozcan muchos de ellos; sin embargo, proporcionará un conjunto sólido de ejemplos sobre cómo las acciones y los filtros, y por lo tanto los eventos, funcionan en WordPress.

Después de eso, continuaremos nuestra discusión sobre las funciones y facilidades que ofrece WordPress para crear aplicaciones web.

Advertisement
Did you find this post useful?
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.