8 Services

Documentación Técnica: Servicios (app/Services)

Este documento describe los servicios principales del sistema Frameworkito, su propósito, estructura, funciones clave, consideraciones de seguridad y recomendaciones de uso. Está orientado a desarrolladores que deseen mantener o extender la capa de servicios del sistema.


1. EmailService.php

Propósito: Gestiona el envío de correos electrónicos transaccionales (recuperación de contraseña, confirmaciones, notificaciones) utilizando PHPMailer y plantillas HTML.

Funciones clave:

  • __construct(array $config = []): Inicializa el servicio con la configuración de correo.
  • sendPasswordReset($toEmail, $toName, $resetLink, $companyName): Envía correo de recuperación de contraseña.
  • sendPasswordChanged($toEmail, $toName, $companyName): Envía confirmación de cambio de contraseña.
  • send($fromName, $toEmail, $toName, $subject, $body): Envía un correo genérico usando PHPMailer.
  • renderTemplate($filePath, array $vars = []): Renderiza una plantilla HTML reemplazando variables.

Seguridad:

  • Validación estricta de configuración SMTP antes de enviar correos.
  • Plantillas HTML con variables escapadas para prevenir XSS.
  • Logging de intentos y errores de envío.

Recomendaciones:

  • Configurar correctamente los parámetros SMTP en app/Config/mail.php.
  • Personalizar las plantillas de email según la identidad del sistema.
  • Revisar logs ante fallos de envío.

2. ActivityLogService.php (sin implementar)

Propósito esperado: Servicio para registrar y consultar logs de actividad de usuarios y sistema.

Nota:

  • El archivo existe pero no contiene implementación. Se recomienda implementar métodos para auditar acciones relevantes y consultar logs.

3. AuthService.php (sin implementar)

Propósito esperado: Servicio para encapsular la lógica de autenticación, registro, login, logout, recuperación y verificación de usuarios.

Nota:

  • El archivo existe pero no contiene implementación. Se recomienda centralizar aquí toda la lógica de autenticación y validación de credenciales.

4. LogService.php (sin implementar)

Propósito esperado: Servicio para registrar logs de sistema (errores, accesos, eventos) en archivos o base de datos.

Nota:

  • El archivo existe pero no contiene implementación. Se recomienda implementar métodos para registrar, consultar y limpiar logs, integrando con los helpers de logging.

5. UserService.php (sin implementar)

Propósito esperado: Servicio para operaciones avanzadas sobre usuarios (gestión, actualización, borrado, roles, etc.), separando la lógica de negocio del modelo.

Nota:

  • El archivo existe pero no contiene implementación. Se recomienda implementar métodos para gestión avanzada de usuarios y lógica de negocio relacionada.

Nota: Los servicios permiten separar la lógica de negocio y tareas complejas de los controladores y modelos, promoviendo un diseño limpio y mantenible. Se recomienda implementar y documentar los servicios faltantes para fortalecer la arquitectura del sistema.

Cargando...