Foros del Web » Programando para Internet » PHP »

Implementar sistema que admita plugins o módulos externos

Estas en el tema de Implementar sistema que admita plugins o módulos externos en el foro de PHP en Foros del Web. Buenas, Tengo algunas dudillas de concepto a la hora de crear una aplicación web que acepte plugins. Lo que quiero es saber cual sería la ...
  #1 (permalink)  
Antiguo 29/11/2007, 14:00
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Implementar sistema que admita plugins o módulos externos

Buenas,

Tengo algunas dudillas de concepto a la hora de crear una aplicación web que acepte plugins.

Lo que quiero es saber cual sería la forma más correcta de diseñar la aplicación.

Me explico, poniendo como ejemplo un CMS o un foro, o un sistema de blogs (o cualquier otra aplicación), ¿Cómo se implementaría que acepte diversos plugins o módulos externos?

Esos módulos podrían limitarse a realizar un par de operaciones, o interactuar con una base de datos, escribir ficheros, mostrar algo por pantalla, etc... Es decir, cualquier cosa.

Por ejemplo puede ser un plugin que se encargue de hacer una actualización de la base de datos sólo en el caso de que se den una serie de condiciones, o que implemente un formulario en un determinado lugar de la aplicación, etc..

El problema es que no tengo muy claro como implementarlo para que estos plugins puedan inyectarse en cualquier parte de la aplicación.

Lo que había pensado es, primero registrar los plugins/módulos externos (bien mediante un fichero de configuración, o poniendolos en un directorio concreto, o sacándolos de una BDD, etc...).
Al arrancar la aplicación lo que haría es cargar e inicializar los plugins (cada uno debe tener una función de inicialización).

Pero a partir de ahí no sé como hacer para que se inyecten en los sitios donde me interesan.

Había pensado en crear una especie de API para proveer las funciones más comunes, pero habrá muchas situaciones en las que estas se queden cortas.

Entonces estaba pensando una manera de poder inyectar funciones en cualquier parte del código. Lo primero que he pensado es en identificar una especie de "checkpoints" en determinados lugares del código, cada uno con un identificador único. De tal modo que, en esos lugares, se compruebe si tiene que ejecutar alguna función de algún plugin.

No sé si me habré explicado, no tengo mucha experiencia en aplicaciones de cierta embergadura (es por hobby).

Si alguien tiene alguna idea de cómo se podría implementar algo como lo que quiero le estaría muy agradacido!

Saludos!
  #2 (permalink)  
Antiguo 29/11/2007, 15:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Implementar sistema que admita plugins o módulos externos

Lo mas correcto es delinear exactamente que va a hacer tu sistema de plugins, luego es diseñar el API y como bien comentas en ciertos lugares del codigo poner las llamadas a los plugins.

Por ejemplo un foro, cuando se dibuja un post, llamas a una funcion:
Código PHP:
$mensaje ""// variable que contiene el mensaje del usuario
Plugin::dispatch"on_message_draw", &$mensaje );
echo 
$mensaje
Asi por decir tu clase plugins puede buscar los plugins que implementen esa API on_message_draw y les pasa por parametro el mensaje.

Es algo que se puede hacer con el patron Decorador de Programacion Orientada a Objetos.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:28.