Usando un controlador frontal en un complemento de Wordpress, ¿alguna sugerencia?

2

Mi idea fue utilizar un controlador frontal en nuestro complemento. ¿Alguien ha hecho eso ya? Las responsabilidades del controlador deben ser

  • inicia la clase de enrutador;
  • proporciona acceso al registro de objetos, que ser responsable de encontrar e inicializar otras clases (posiblemente a través de las fábricas);
  • iniciar la clase responsable de enlazar WordPress acciones.

Estaba pensando en seguir el estándar martin fowler example pero si alguien ya lo ha intentado, es posible que desee aprende de él.

    
pregunta Nicola Peluchetti 12.10.2013 - 22:23

1 respuesta

6

La mayoría de los complementos complejos hacen eso de una forma u otra. Desafortunadamente, muchos complementos comienzan con una clase divina y no usan un enfoque de POO limpio. WooCommerce es un ejemplo popular.

Los complementos no pueden proporcionar un controlador frontal real porque se cargan después de que WordPress haya configurado la mayor parte de su entorno. Y todos los complementos son casi iguales: si dos complementos intentan manejar la misma solicitud, el primero probablemente gane. Nunca sabes qué complementos podrían competir con los tuyos.

Para un ejemplo muy básico, vea mi complemento Vista previa pública de T5 (de esta respuesta ).

  • El controlador frontal es la clase T5_Public_Preview carga el necesario Clasifica y crea los objetos en función de la solicitud (admin o front-end).
  • Hay tres modelos: T5_Post_Meta , T5_Public_Preview_Language y T5_Endpoint .
  • Y dos vistas controlan la salida: T5_Publish_Box_View y T5_Render_Endpoint . El último no muestra realmente algo, pero cambia WordPress para mostrar un resultado diferente en algunos casos.

OOP se trata de comunicación entre objetos y componentes . Entonces, el problema real no es el patrón, es la comunicación . El núcleo de WordPress no es OOP, todo está agrupado; El código fue y está creciendo orgánicamente. Sin una estructura interna clara, WP resolvió el problema de comunicación con acciones y filtros (ganchos) : eventos predefinidos, permitiendo que cualquier complemento cambie o reemplace la salida y la lógica de la aplicación.

Su complemento tiene que funcionar dentro de esta estructura dada. Hay algunos problemas de comunicación interesantes para resolver:

Estas son las responsabilidades más importantes para un controlador frontal de plugin. Puede delegar algunos de ellos en controladores posteriores, pero el controlador frontal debe saber cómo funcionan. En mi opinión, un controlador frontal en un complemento WP tiene que saber demasiado con demasiada frecuencia. Pero todavía estoy aprendiendo. :)

Oh, y separe el archivo del complemento principal de las declaraciones de clase .

    
respondido por el fuxia 12.10.2013 - 23:35

Lea otras preguntas en las etiquetas