Foros del Web » Programando para Internet » PHP »

Agregar módulos a aplicacion en PHP

Estas en el tema de Agregar módulos a aplicacion en PHP en el foro de PHP en Foros del Web. Cómo crear una aplicacion que se le puedan agregarle modulos sin neccesidad de cambiar/modificar la aplicación? Para que los desarrolladores creen módulos, que se integren ...
  #1 (permalink)  
Antiguo 08/02/2004, 17:29
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 20 años, 2 meses
Puntos: 0
Agregar módulos a aplicacion en PHP

Cómo crear una aplicacion que se le puedan agregarle modulos sin neccesidad de cambiar/modificar la aplicación?

Para que los desarrolladores creen módulos, que se integren de forma automatica al sistema general y que se puedan activar desde una administración.

No tengo ni idea de cómo hacerlo.
  #2 (permalink)  
Antiguo 09/02/2004, 04:32
Avatar de vitxo  
Fecha de Ingreso: septiembre-2003
Ubicación: Valencia
Mensajes: 219
Antigüedad: 20 años, 6 meses
Puntos: 0
Pues para empezar tienes que tener tu aplicación dividida en módulos, por ejemplo, si sigues el patrón Modelo Vista Controlador (en POO) o el FuseBox para programación imperativa. Si te fijas en el post de Webstudio (http://www.forosdelweb.com/s/msg180953.html) , para crear o empaquetar aplicaciones con agrupar clases Vistas y Acciones ya tiene una aplicación (o casi). Me refiero a una agrupación lógica (y posiblemente "física" en directorios diferentes): las acciones y vistas de un foro van por separado que las acciones y vistas del sistema de gestión de usuarios.

Tienes bien estructurada tu aplicación? Quizá te interese mantener en archivos XML (x ejemplo) la configuración de todos los módulos y los parámetros que puedan necesitar?

dale caña, nos leemos.
  #3 (permalink)  
Antiguo 09/02/2004, 09:38
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 20 años, 2 meses
Puntos: 0
Intento usar el modelo(adodb)-vista(templates)-controlador(php), peo aún así creo que tengo que modificar la aplicacion si le quiero ajuntar un módulo.

Con phpbb hay unos mod en que te dicen que tienes que abrir tal arxivo, ir a una determinada liniea y insertar el código.
Esto me parece una mala idea. Por eso se me vino a a la cabeza que habria una mejor manera de hacerlo.
  #4 (permalink)  
Antiguo 09/02/2004, 09:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
mm Bueno .. si creas módulos y pretendes que se inserten de forma automática en tu aplicación .. dedes de implementar la lógica y modo de trabajar de esos módulos .. Ejemplo algo tipo " en la carpeta modulos/cadadirectorio será un modulo .. y ahí tendrá un tal "config.ini.php" o similar que eso será lo que busques en cada inicio de tu aplicación como para "cargar" los módulos que puedas tener (o por lo menos iniciar ese proceso de "reconocimiento de módulos" cuando lo indiques ..)

El caso es seguir una estructura "fija" para que tu lógica sepa de que se compone tu módulo ..

A todo esto tendrás otras capas por médio (ademas de las de manejo de templates y BD con tu ADOdb) .. como las lógicas de "gestión de usuarios" .. "autentificación" .. y .. hasta los "menús" .. por qué si creas un módulo .. en algún sitio tendrá que aparecer el "link" para entrar a esa nuevo módulo que se incorporó al sistema ... por nombrar algunos ejemplos.

Sistemas CMS como PHP-Nuke, PostNuke y similares ya tiene esa estructura .. que sea más "automático" o menos el proceso de añadir un nuevo módulo .. ya es cosa de "lógica" y plantear la mejor solución o menos complicada. Tampoco tengo experiencia con ese tipo de aplicaciones .. pero seguro que si preguntas en el sub-foro de Aplicaciones Pre-fabricadas .. los usuarios de dichas aplicacioenes te podrán dar sus impresiones sobre ese tema concreto.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 09/02/2004, 10:04
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Depende de como definas modulo. Porque para mi un "modulo" puede ser una extension de alguna parte de la aplicacion, como un nuevo "filtro" para los mensajes posteados en el foro (un analizador del la pregunta y genera una lista de mensajes antiguos que pueden ayudar). O un modulo puede ser una miniaplicacion que usa librerias de la aplicacion principal (como un foro que use la autentificacion de la aplicacion). O un modulo puede ser cualquier cosa.

De todas formas, deberias diseñar una API o interfaz para que el modulo pueda interaccionar con la aplicacion principal, y esta con el modulo. Podrias hacer que todos los modulos sean subclases de una clase Modulo, con un interfaz basico y que permita la extraccion de los metodos propios (creo que java trae algo asi de serie).

Deberias leer algo sobre "patrones de diseño". Mira en www.phppatterns.com .

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 09/02/2004, 10:37
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 4 meses
Puntos: 69
Se que es una lectura para JAva, pero la verdad que la sintaxis es tan parecida ya, que da lo mismo:

Para implementar Módulos, tenés que diagramar tu aplicación desde Cero teniendo en cuenta esto. Para eso, te conviene utilizar el Patrón Front-Controller:
http://java.sun.com/blueprints/corej...ontroller.html

Hay otra manera de agregar distintas funcionalidades a una aplicación, pero no ya en la forma de un módulo propiamente dicho, sino más como se comportaría un Plug-In. Esto sería con el Patrón Intercepting Filter que es muy útil a la hora de implementar Filtros que interceptan un Pedido y realizan tareas antes de que el mismo llegue al Comando en si :
http://java.sun.com/blueprints/corej...ingFilter.html

Saludos
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
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 11:59.