WordPress para el desarrollo de aplicaciones web el modelo conceptual

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

Una de las cosas más importantes a tener en cuenta es que WordPress no pretende ser la solución definitiva para crear aplicaciones web. De hecho, no creo alguna Fundación o marco está destinado a ser la solución definitiva.

En su lugar, tenemos una serie de opciones diferentes, todas las cuales se prestan a situaciones mejores que otras, y WordPress no es diferente. A lo largo de esta serie, continuaremos observando cómo se pueden crear aplicaciones web con WordPress y qué situaciones se prestan mejor a la base. Sin embargo, debemos continuar nuestra discusión sobre cómo funciona WordPress para que podamos comenzar a hablar sobre cómo crear aplicaciones sobre ella..

En el artículo anterior, discutimos la cantidad de marcos que ofrecen un enfoque de MVC para el desarrollo, pero también analizamos el modelo basado en eventos de WordPress. En esta publicación, vamos a analizar con más detalle el paradigma basado en eventos que emplea WordPress y por qué esto 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 dirigida por 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. -Controlador.


Programación dirigida por eventos

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

En cambio, la programación dirigida por eventos funciona a partir de la premisa de que "algo sucedió". De ahí el nombre de comportamiento en la jerga de WordPress (por supuesto, también tenemos filtros, pero los cubriré momentáneamente).

Y eso está bien para una definición funcional de eventos, especialmente a un alto nivel. Sin embargo, si desea analizar más a fondo cómo se ve esto desde un punto de vista práctico, es decir, desde cómo WordPress lo implementa, entonces lo mejor que puede hacer es entender. eventos.

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


Entendiendo eventos

Como ya hemos mencionado, en la programación dirigida por eventos, la idea de eventos es simplemente que algo ha pasado. Seguimos reiterando eso, pero ¿qué significa eso realmente??

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

  • 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 representa dentro del contexto del marcado.
  • La página se presenta al usuario.
  • … y así

Todos estos pueden considerarse eventos, pero cada uno de ellos está formado por su propio conjunto de eventos más pequeños, es decir, puede obtener De Verdad Detallado cuando pasa algo..

Tomemos, por ejemplo, la idea de representar una solicitud típica y pública para una página basada en WordPress. Si observa el documento del Codex asociado, notará que ocurren aproximadamente 50 acciones, y esto sí no incluir acciones específicas de la publicación o página, ya sea.

Cada una de estas acciones puede considerarse como un evento, y en el mundo de la programación dirigida por eventos, los eventos generalmente se exponen de tal manera que nos permiten conectarlos y manipular la información antes de que se la presente al cliente..

De ahí el nombre para ganchos..

Por supuesto, en WordPress, los ganchos vienen en dos variedades: Acciones y Filtros. Aunque esta serie no se trata de un tutorial sólido sobre cada uno de estos, es Es importante reconocer la diferencia entre ellos y su relación con el trabajo con WordPress.

Comportamiento

Las acciones son un tipo de gancho que significa que algo ha sucedido, y cuando ese alguna cosa ocurre, tenemos la capacidad de registrar nuestra propia funcionalidad de modo que podamos inyectar nuestro propio código (o incluso evitar que ocurran ciertas cosas).

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 ciertas cosas han ocurrido: ciertos recursos están cargados, ciertas instalaciones están disponibles y, dependiendo de qué tan temprano haya ocurrido la acción, algunas cosas aún tienen que cargarse..

Es importante entender las acciones disponibles para saber cuándo es el mejor momento para engancharse a un evento determinado, para no impedir el rendimiento de la página, lo que puede provocar la mutilación de otros datos que están descendiendo o para que esté correctamente Manejando la información en el momento y lugar correctos..

Filtros

Los filtros, por otro lado, son un tipo de enlace que nos permite recibir un determinado dato, manipularlo y luego devolverlo a WordPress antes de representarlo en el navegador..

Por ejemplo, si echas un vistazo a el contenido filtre, luego notará que si engancha una función en esta acción en particular, su función recibirá el contenido. Esto significa que podrá manipular el contenido insertando información en él, eliminando información de este, o algo similar, antes de devolvérselo a WordPress para representarlo en el navegador..

De manera similar, resumí los filtros en mi serie sobre Acciones y Filtros de la siguiente manera:

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

Así que, con todo lo dicho, las acciones y los filtros son ambos tipos de eventos que ocurren dentro del ciclo de vida de WordPress que nos permiten gancho en ellos e inserte nuestro propio código para su ejecución antes de enviarlo al navegador.

En resumen, el término "ganchos" es un término general que se refiere tanto a las acciones como a los 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 personas que provienen de un fondo diferente, como Rails, CakePHP, ASP.NET u otros marcos MVC, es cómo mapear su modelo conceptual de MVC para el evento. modelo impulsado de WordPress.

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

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

Para ello, recomiendo encarecidamente que evite 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 modernización!

En pocas palabras, venir a WordPress desde otro marco que use otro patrón de diseño u otro paradigma está bien, pero no se trata de hacer que WordPress se ajuste a su experiencia anterior.

No puede 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 hace con otros marcos, usted debe piense en términos de cómo funciona WordPress para 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 las aplicaciones web, pero antes de eso, creo que es importante entender el patrón que implementa WordPress y cómo aprovecharlo al máximo..


Ejemplos prácticos de eventos

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

Después de eso, continuaremos nuestra discusión sobre las características y las instalaciones que ofrece WordPress para crear aplicaciones web..