incompass/timestampable-bundle
Symfony bundle that adds automatic timestamping to Doctrine entities, managing createdAt and updatedAt fields via listeners so you can track creation and modification times without boilerplate.
Headline: this is not a Laravel package. incompass/timestampable-bundle is a Symfony bundle built on Doctrine ORM. It ships a Symfony Bundle class for kernel registration plus Doctrine event listeners/subscribers — neither is a Laravel concept. Composer will install it (it is PHP), but "leveraging it in a Laravel stack" is only coherent if we already run Doctrine under Laravel via laravel-doctrine/orm, which is a minority architecture for us. For an Eloquent-based service, the problem it solves does not exist: Eloquent provides $timestamps, created_at/updated_at, and Model::withoutTimestamps() natively.
prePersist/preUpdate.incompass/timestampable-bundle published from casechek/TimestampableBundle) reads as an internal extraction or vendor fork rather than a maintained OSS product. License, CI, coverage, and release cadence are not evidenced. With no community, there is no realistic expectation of upstream fixes; we must assume we own the code the day we adopt it.\DateTime or \DateTimeImmutable? UTC-only or timezone-aware? Does it support immutable_datetime?prePersist/preUpdate only, or also soft-delete/restore?UPDATE paths? (It will not — Doctrine listeners do not fire on bulk operations. This is a known, silent-staleness failure mode we must design around.)booted() model hooks or an observer, or simply rely on native $timestamps. Effort is under a day, fully owned, zero external dependency — and we can extend it to blameable later without churning our dependency choices.composer require resolves against our PHP constraint; check bundle registration against our Symfony major (5 vs. 6/7 differ on config and attribute autoconfiguration); check Doctrine ORM 2 vs. 3 listener signatures. Any failure here is a stop sign for this package, not a patch exercise — we should not spend engineering time patching an unmaintained dependency to fit.AuditLog or a CRM last_contacted_at) — anywhere a missed update is a real bug and manual assignment is noise.updated_at columns to large tables requires online-safe migrations, and indexed timestamp columns on high-write tables add write amplification. Neither is a reason to reject the capability; both are reasons to plan the rollout rather than blanket-apply it.UPDATE statements bypass listeners and silently leave timestamps stale — this is the single biggest threat to incremental sync and reporting watermarks keyed on updated_at.updated_at reflects commit order rather than logical order.created_at/updated_at values are the substrate for audit evidence, dispute resolution, support triage, incident forensics, cohort/staleness reporting, retention enforcement, and cache-invalidation watermarks. But this specific package is not the right vehicle. It converts a small, well-understood problem into a supply-chain and bus-factor problem.TPM recommendation: do not adopt as a dependency. Native Eloquent timestamps, the ecosystem standard (Gedmo Timestampable/Blameable for Doctrine shops), or a ~50-line in-house trait deliver the same outcome with zero third-party risk and full ownership. Treat this repo as a reference implementation worth reading, not a dependency worth adding. Re-evaluate only if we already run Doctrine, the license permits a fork, and we have confirmed blameable (created_by/updated_by) is out of scope for this quarter — because if blameable is in scope, it changes the build estimate and argues for Gedmo or in-house either way.
How can I help you explore Laravel packages today?