Doppar’s Temporal ORM, présenté dans cet article de Mahedi Hasan, est une solution PHP innovante permettant de conserver et interroger l’historique complet des modifications d’un enregistrement en base de données. L’idée centrale est d’intégrer nativement cette fonctionnalité dans le framework, évitant ainsi les approches traditionnelles comme les logs manuels ou les packages externes, souvent coûteuses en maintenance. L’ORM capture automatiquement chaque changement (création, mise à jour, suppression) et le stocke dans une table dédiée, offrant ensuite une API intuitive pour naviguer dans le temps, comparer des états ou restaurer des versions antérieures.
L’article explique que cette fonctionnalité s’inspire des standards SQL:2011 pour les tables temporelles et d’outils comme Hibernate Envers (Java) ou Paper Trail (Ruby), mais est repensée pour PHP 8.3 avec des attributs modernes et une configuration minimale. L’objectif est de traiter l’audit comme une capacité native du framework plutôt qu’un module externe, réduisant ainsi la complexité et les risques d’erreurs.
Enfin, la mise en œuvre est simplifiée : il suffit d’ajouter l’attribut #[Temporal] à un modèle pour activer le suivi automatique. L’ORM gère les snapshots en JSON, les métadonnées (date, utilisateur, etc.) et propose des méthodes fluides pour interroger le passé, comme Contract::at('2024-01-01')->find(42).
L'article explore l'évolution des bibliothèques de gestion de dates et d'heures en JavaScript, en particulier le passage de Moment.js à l'API Temporal. Il explique les limites de l'API Date intégrée, les avantages et les inconvénients de Moment.js, et introduit Temporal comme une solution moderne et intégrée, plus performante et moins sujette aux erreurs. L'auteur partage des conseils pratiques pour migrer du code basé sur Moment.js vers Temporal.