[1.9.0] - 2026-03-13
🔧 Timezone Correctness y Hardening de Conexión
VersaModel.php — Timestamps con timezone del ORM:
store()ya no usa UTC hardcodeado paracreated_at/updated_at.- Ahora usa
getTimezone()de la instancia ORM cuando está disponible. - Fallback seguro a
date_default_timezone_get()cuando no hay timezone configurada o viene vacía. - Corrige desfases visibles en motores que persisten
timestamp without time zone.
HasStrongTyping.php — Casting datetime alineado al ORM:
- El cast de timestamps unix a
DateTimeImmutableahora intenta resolver la timezone desde el ORM del modelo. - Si no puede resolver ORM/timezone, mantiene fallback a
date_default_timezone_get(). - Mejora consistencia entre valores casteados y persistencia automática de timestamps.
PdoConnection.php — Defaults y autenticación más seguros:
- Host por defecto para MySQL/PostgreSQL cambiado de
localhosta127.0.0.1para evitar resolución implícita por socket en entornos donde sólo TCP está disponible. - El fallback implícito de credenciales
local/localya no se aplica automáticamente. - Se añade fallback opcional explícito vía
options.allow_local_fallback_auth.
VersaORMTrait.php — Configuración base menos rígida:
DEFAULT_CONFIGsimplificada para evitar defaults de driver/host/port/credenciales hardcodeados.- Se mantiene
engine => pdocomo valor base seguro.
✅ Validación
- SQLite:
882tests (2301assertions) sin fallas/errores. - MySQL:
520tests (1559assertions) OK. - PostgreSQL:
645tests (1961assertions) OK.
Full Changelog: v1.8.8...v1.9.0