Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Time Ago Bundle Laravel Package

softspring/time-ago-bundle

Softspring TimeAgoBundle adds a simple Twig filter for rendering dates and timestamps as human-friendly relative time, such as “5 minutes ago” or “2 days ago.” It helps Symfony applications show compact, readable age labels in templates without custom date logic.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — significant mismatch. softspring/time-ago-bundle is a Symfony bundle, not a Laravel package. It ships a DI extension, service definitions, and (typically) a Twig extension exposing a "time ago" / relative-date filter. Laravel has no bundle model: there is no compiler pass to register, no services.yaml to load, and no Twig runtime. Adopting it in a Laravel codebase means either (a) pulling Symfony DependencyInjection/HttpKernel/Twig transitively into an app that does not otherwise use them, or (b) ignoring the bundle entirely and consuming only the underlying formatter class. Neither is a clean fit. The value proposition for a Laravel team is close to zero relative to Carbon::diffForHumans(), which is already in the dependency tree via Eloquent.

Integration feasibility — moderate to low, and unverified. Feasibility hinges on one unknown: whether the formatting logic is decoupled from the Symfony wiring. If the formatter is a standalone class with no container dependency, a Laravel service provider can bind it and a Blade directive can wrap it in roughly a day's work. If the formatter is container-aware or Twig-coupled, the integration cost rises sharply for a feature that is a one-line Carbon call.

Technical risk — elevated by poor release information. The v5.6.0 notes are a bare compare/v5.5.10...v5.6.0 link with no changelog body, no enumerated features, no deprecation notices, no migration notes. A patch-to-minor bump (5.5.10 → 5.6.0) implies additive, non-breaking change under semver, but that is inference, not evidence. We cannot confirm whether public API, filter signatures, or PHP/Symfony version floors moved. Treat the release as opaque and diff the tag before any upgrade decision.

Key questions for the maintainer / spike:

  1. Is the relative-date formatter usable standalone, without Symfony DI or Twig?
  2. What exactly changed in 5.6.0 — new locale support, new filter options, internal refactor?
  3. What are the supported PHP and Symfony version floors after this release?
  4. Is Twig a hard requirement or a soft/optional dependency?
  5. Release cadence, bus factor, and whether security advisories are published.
  6. License terms and whether the formatting logic is original or a thin wrapper over Carbon/php-intl.

Integration Approach

Stack fit. Native for Symfony 5/6/7 applications already using Twig — near-zero friction there. Poor for Laravel. If the organisation runs both stacks, this package is a Symfony-side convenience only; do not standardise on it as a cross-stack utility.

Migration path. For a Laravel target, the recommended path is not migration but substitution: map the bundle's behaviour onto Carbon::diffForHumans() with locale and timezone settings pushed into config/app.php. Only pursue the package itself if a spike proves the formatter is framework-agnostic and the output genuinely differs from Carbon in a way product cares about (e.g. specific locale granularity or custom thresholds like "just now" windows). For a Symfony target already on v5.5.x, upgrade by widening the Composer constraint to ^5.6 and running the container compile.

Compatibility. Unknown from the release notes. Before pinning, verify the PHP floor against the runtime image, the Symfony minor against the framework's LTS status, and Twig 2 vs 3 support. Transitive Symfony component bumps are the most likely source of surprise in a Laravel app.

Sequencing.

  1. Diff v5.5.10...v5.6.0 at the tag level — establish whether the change is additive, and whether it is worth anything to us.
  2. Timeboxed spike (≤2 days): install in a throwaway Laravel app, strip the bundle wiring, confirm the formatter instantiates standalone.
  3. Decide build-vs-buy against Carbon and against a 40-line internal helper.
  4. If adopted, wrap behind a first-party interface so the vendor can be swapped without touching call sites.
  5. Pin exactly; do not float the constraint on a package with a blank changelog.

Operational Impact

Maintenance. Small-vendor, single-maintainer profile with low visible release hygiene — a changelog consisting solely of an auto-generated compare link is a leading indicator that upgrade notes will not be written when a breaking change does land. For a utility this small, that is tolerable but must be budgeted: assume every upgrade requires a manual diff review.

Support. GitHub issues only; no evident commercial backing or SLA. Escalation path is "fork it." Acceptable for a cosmetic string formatter, unacceptable if it ever ends up on a user-facing critical path with locale compliance requirements.

Scaling. Runtime cost is negligible — string formatting per render. The real scale concern is output caching: relative timestamps ("3 minutes ago") are time-dependent and defeat naive fragment caching. If used in list views, render client-side or cache with a short, explicit TTL. Locale data (php-intl / ICU) must be present in every container image, including the slim production builds where it is commonly stripped.

Failure modes.

  • Container compile failure after a transitive Symfony component upgrade (Laravel and Symfony targets alike).
  • Missing or mismatched ICU data producing English output in non-English locales, silently.
  • Timezone drift between application config and the formatter's assumption, yielding off-by-hours strings around DST boundaries.
  • Twig major-version conflict if any part of the application pins Twig 2.
  • A future breaking change shipped without notes, discovered only in production.

Ramp-up. Trivial for a Symfony developer — install, enable the bundle, use the filter. For a Laravel-only team, expect half a day to a day to understand bundle conventions and build the bridging layer, plus ongoing cognitive cost of an unfamiliar dependency model. Given the alternative is a documented Carbon call, the ramp-up is not repaid by the functionality.

TPM recommendation. Do not adopt softspring/time-ago-bundle into the Laravel surface. Re-evaluate only if the repo diff reveals a genuinely differentiated formatter that is framework-decoupled, and even then consume the inner library rather than the bundle. Track the project at low priority; the v5.6.0 release does not, on the evidence available, change the calculus — but the absence of release notes is itself a governance signal worth recording.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin