Ahora KumbiaPHP está en Slack!!

Si deseas contactar con nosotros y de forma rápida, estamos en Slack:

http://slack.kumbiaphp.com/

Modulos independientes

edited agosto 2007 in Dudas/Problemas
Hola a todos!

Acabo de conocer Kumbia y se ve muy prometedor, felicidades! :wink: casi me he leído todo el libro y ya hice mi "Hola mundo". Solamente que tengo una duda:

¿es posible programar módulos contenidos de manera independiente de la estructura del framework base?

Es decir, si comienzo a construir una aplicación o sistema que estará compuesto de diversos módulos que pueden ser instalados o no según mis necesidades; ¿todos los controladores deben estar dentro del directorio controller principal?

Personalmente me gustaría que cada módulo fuera independiente de los demás y no se mezclaran sus controladores con los otros. Hace un tiempo hice una especie de framework MVC personal sin muchas formalidades y bastante rústico, pero fue ideado con eso en mente, por ejemplo se me ocurre visualizar la estructura algo así:

kumbia
- modulos
-- faq
---- forms
---- controllers
---- views
-- encuestas
---- forms
---- controllers
---- views

etc. No sé si se entiende lo que quiero ilustrar. Me parece que así sería mucho más sencillo el mantenimiento de una aplicación modular, además que facilitaría la forma de agregar y remover módulos.

Quizá no es buena idea, o tal vez no he comprendido bien el esquema utilizado por Kumbia, pero me gustaría conocer sus opiniones.

Comentarios

  • comparto totalmente tu punto de vista, es lo que siempre me pregunto de los framework, porque tanto enredo de directorios y archivos, lo mismo para el backend y el frontend.
    es mi humilde aporte de lo poco que se.
  • Hola, este post del 2007 no lo había visto. Yo llegue a KumbiaPHP en el 2008. Pero veo que nadie le contesto.
    Si es útil usar módulos autocontenibles. Los desarrolladores del core lo han discutido muchas veces.

    Realmente KumbiaPHP beta2 esta preparado para añadirlos, pero no se habilitaran hasta la nueva versión. Por 2 razones: 1) Actualmente rompería con las apps actuales y 2) por que para añadirlos de forma óptima (y no añadir un motón de código extra) se deben usar los namespaces de PHP >5.3, para evitar conflictos con clases.

    La beta2 ha sido un rolling release (desarrollo continuado sin cambiar de versión), donde se ha reescrito todo el core, para que fuese más mantenible y más rápido. Y al mismo tiempo mantener la compatibilidad, pero que se han tenido en cuenta futuras características.

    De todas formas no no todo puede funcionar en módulos independientes. Si es la forma correcta en un  fw HMVC (menos rápido este patrón) pero no tanto en un MVC. Aunque seguimos pensando que es útil.

    De todas formas KumbiaPHP, puede tener apps o mini apps funcionando sin problemas una al lado de otra. Que viene a ser como los módulos. Son apps independientes, pero que usan el mismo auth. En el config.ini se decide por un namespace, que apps usarán el mismo auth y cuales no.

    Yo mismo por ejemplo, normalmente creo 2 apps como indica virla para el backend y frontend, y normalmente cada una con un namespace diferente de auth. Realmente las apps o mini apps son fáciles de añadir a cualquier app de KumbiaPHP. Se hace externamente a nivel de url y no internamente en código.

    Espero haber contestado a esta pregunta. Pero de no ser así pueden preguntar, para profundizar más en el tema.

  • joanhey! me intriga saber como haces lo siguiente: "En el config.ini se decide por un namespace, que apps usarán el mismo auth y cuales no."
    Hay alguna regla específica para el config.ini, o tienes que realizar alguna otra acción para que esto funcione así?
  • Por defecto si no tocas nada en el config.ini funciona para que todas las apps usen el mismo (si están en el mismo dominio).
    namespace_auth = "default"

    si quieres que otra app use el suyo
    namespace_auth = "mipropioauth"

    Ejemplos de apps:
    dominio.com/  (app default) carpeta default
    dominio.com/mail/ (app mail) carpeta mail
    .....

  • Perfecto, gracias!
Sign In or Register to comment.