Módulo de mensajería en PHP
Módulo genérico para implantar un sistema de mensajería uno a uno o una agenda personal.
El previsible aumento en la complejidad de una aplicación hace patente la necesidad de modularidad de partes críticas y comunes entre diferentes aplicaciones, es decir aquellas que implementan funcionalidades básicas y que suelen emplearse de forma concurrente en los diferentes desarrollos que se emprenden, como podría ser un sistema de login, el sistema de registro, o en este caso de mensajería interna, entre usuarios, bastante importante en comunidades online. La planificación de una arquitectura modular, va a facilitar tanto el mantenimiento de las ya existentes como la implantación de nuevas funcionalidades. Una arquitectura modular tiene además la ventaja de poder ser escalada fácilmente, migrando los módulos a microservicios, o bien, recortada en sus funcionalidades, separando los módulos, y por tanto las funciones, del sistema en caso necesario.
Identificadas funcionalidades susceptibles de ser "modularizadas", el diseño deberá conducir a un mínimo acoplamiento con otras partes del sistema y a establecer una lógica en cuanto a su funcionamiento, que no penalice significativamente el rendimiento del conjunto. Sería ésta, la principal desventaja de una arquitectura modular, una perdida de rendimiento frente a otra "monolítica" que integrará como parte inseparable la funcionalidad en el todo.
Desarrolle éste módulo de mensajería, porque mi actividad me ha llevado, de forma más o menos inconsciente al desarrollo de comunidades online, que admiten, bastantes "experimentos", y en las que és, como dije antes, una parte importante.
Técnicamente, el módulo sólo maneja los datos (lógica y acceso a datos), sobre una BD MySql haciendo uso de una conexión PDO, no provee de vista. Se planteo así para poder ser implantado en una variedad de sistemas con independencia de sus particularidades, siendo sencilla su implantación disponiendo de la citada conexión y de unos mínimos datos de configuración.
En cuanto a la funcionalidad, permite el envío de mensajes entre usuarios de uno a uno, es decir un usuario podría enviar un mensaje a otro, no a varios a la vez. Además, permite implementar una agenda personal usando los métodos disponibles para el manejo de borradores. Es importante señalar que pese a que permite implementar un sistema de mensajería o una agenda personal, ambos no pueden coexistir en una misma aplicación, ya que usarían una misma tabla de la base de datos, si bien, duplicar el módulo, con mínimas modificaciones en la copia del mismo (nombre de la tabla y namespaces) si permitirá disponer de ambas funcionalidades.