6 Models
Documentación Técnica: Modelos (app/Models)
Este documento describe los modelos 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 acceso a datos del sistema.
1. User.php
Propósito: Modelo para operaciones básicas sobre usuarios en la base de datos. Permite buscar usuarios por email o por selector de recuperación.
Funciones clave:
__construct(): Inicializa la conexión usando el helperDatabase.findByEmail($email): Busca un usuario por email y retorna id, email y username.findBySelector($selector): Busca un usuario a partir del selector de la tablausers_resets(usado en recuperación de contraseña), retorna id, email y username.
Seguridad:
- Todas las consultas usan sentencias preparadas para prevenir inyección SQL.
- No expone información sensible del usuario.
Recomendaciones:
- Extender este modelo para agregar métodos de gestión de usuarios (crear, actualizar, eliminar, listar, etc.).
- Usar siempre métodos del modelo para acceder a la base de datos, nunca consultas directas desde controladores.
2. BaseModel.php (sin implementar)
Propósito esperado: Modelo base para herencia y reutilización de lógica común entre modelos (por ejemplo, conexión, helpers, validaciones, etc.).
Nota:
- El archivo existe pero no contiene implementación. Se recomienda crear una clase base abstracta para centralizar lógica común de modelos.
3. ActivityLog.php (sin implementar)
Propósito esperado: Modelo 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 registrar eventos, consultar logs y filtrar por usuario, fecha, tipo, etc.
Nota: Los modelos deben ser el único punto de acceso a la base de datos desde el sistema, encapsulando la lógica de persistencia y protegiendo contra errores y vulnerabilidades. Se recomienda implementar y documentar los modelos faltantes para mantener la coherencia y seguridad del sistema.