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

Date Bundle Laravel Package

mrgoodbytes8667/date-bundle

mrgoodbytes8667/date-bundle is a PHP package that bundles date-related functionality for Laravel/PHP projects. It provides a Composer-installable date bundle for keeping date handling in a dedicated package rather than scattered across application code.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — The headline finding is framework mismatch. Despite being evaluated against a Laravel/PHP brief, this package is a Symfony bundle. Its distribution unit is a Bundle class plus service definitions consumed by Symfony's DI container and configured through a semantic Configuration tree. Laravel does not boot bundles, does not run Extension::load(), and does not process bundle compiler passes. There is no "install and go" path. Fit is good for Symfony applications, poor for vanilla Laravel.

The second fit question is scope: does the bundle contain date logic, or does it thin-wrap a library Laravel already ships (nesbot/carbon, brick/date-time, PHP DateTimeImmutable)? If it wraps Carbon, incremental value in Laravel is approximately zero — you would pay integration cost for a capability Illuminate\Support\Carbon already provides. If it owns domain logic Laravel lacks (business-day calendars, holiday rule sets, fiscal periods, recurrence), the value case strengthens and a "extract the service, skip the bundle" path becomes the right move.

Integration feasibility — Three paths, ascending cost:

  1. Consume the underlying classes directly, binding them in a Laravel service provider. Viable only if those classes are container-agnostic and don't type-hint Symfony services.
  2. Install Symfony DI + HttpKernel alongside Laravel to boot the bundle. Technically possible, operationally a maintenance tax (two containers, two config systems, one process).
  3. Fork or vendor the useful subset. Best long-term if the logic is genuinely needed and the license permits it.

Technical risk —

  • License: NOASSERTION means the license file did not match a recognized SPDX template. This is not the same as "unlicensed," but it is the same as "we cannot currently prove our right to use this." Hard blocker until a human reads the file.
  • Adoption signal: 0 stars, 0 dependents, score 0. No production validation anywhere in the ecosystem. The January 2025 release suggests the repo is alive, but alive ≠ exercised.
  • Maintainership: single-author, no community pressure to fix defects. Your bug report is the only signal.
  • Framework coupling: bundles depend on Symfony version ranges and internals (TreeBuilder, ReferenceType, tagged services) that move across majors. Laravel pins its own symfony/* versions, so you inherit drift you don't control.
  • Domain difficulty: date handling is deceptively hard — DST boundaries, timezone DB rollovers, locale/ICU data, leap-year edges. A lightly-tested date package is precisely where silent incidents originate.
  • Scoring noise: opportunity: 25.57 with score: 0 reads as a category-level artifact, not package-level validation. Do not treat it as evidence.

Key questions —

  • What does this do that Carbon / Illuminate\Support\Carbon does not?
  • Is there a non-Symfony core, or is the logic itself framework-coupled?
  • What is the actual license text, and does it permit use in a closed-source commercial product?
  • What Symfony constraint does it declare, and does that resolve against the versions Laravel 11/12 pin?
  • Does it test DST transitions, timezone DB updates, locale formatting, and invalid input?
  • What components does the dependency tree drag in (Doctrine, Twig, Form)? The bundle may pull half of Symfony with it.
  • Is there a changelog and a stated BC policy?

Integration Approach

Stack fit — Baseline assumed: Laravel 10/11/12, PHP 8.1–8.4, Carbon present by default, Date facade as the canonical entry point. Against that, a Symfony bundle is a foreign object. Decision rule: if the capability is achievable in ~50 lines of Carbon plus a custom cast, do that and take no dependency. Escalate to evaluation only where the capability is a genuine domain model at scale.

Migration path — If proceeding:

  1. Read the license. Stop if unclear.
  2. Read the source tree. Identify which src/ classes depend on Symfony\Component\* versus plain PHP. Map the container-agnostic subset.
  3. Prototype a Laravel service provider binding those classes manually, with explicit constructor args — no Symfony container.
  4. Translate the bundle's semantic config into config/date.php, passing values explicitly. This replaces Extension::load(); it does not emulate it.
  5. Wrap behind an app-owned adapter interface so the package is swappable on abandonment.
  6. Only if steps 2–5 show coupling is inseparable, consider the DI bridge or a fork.

Compatibility — Run composer why-not and diff the lockfile before writing code. Check: declared symfony/* constraints vs. Laravel's pinned ranges, PHP floor, PSR-4 autoload sanity, and whether any Symfony-global service is referenced at compile time.

Sequencing — Time-box the spike to 1–2 engineer-days, run before committing sprint capacity. Gate: if an engineer cannot enumerate the public API and locate the non-Symfony core in half a day, the package is underdocumented relative to the value it offers, which is itself sufficient grounds to pass. If the spike passes, ship behind a feature flag with the adapter interface in place from day one.

Operational Impact

Maintenance — We would own the integration, not merely the dependency. Every Symfony major Laravel absorbs is a potential break with no upstream pressure to remediate. Realistic ongoing cost: several hours per Symfony major plus ad-hoc debugging when date behavior is subtly wrong. Compare Carbon, maintained effectively as part of the Laravel platform.

Support — No vendor, no SLA, no community. Support model is "read the source" — acceptable for a small utility, unacceptable for anything owning billing-period or scheduling correctness. Assign a named internal owner before adoption; a package with no owner should not reach a production path.

Scaling — Throughput is not the concern; date math is CPU-trivial. The concern is correctness at the edges: timezone DB updates (PHP ships tzdata; container images lag), DST transition dates, ICU/locale differences between dev and prod images, and multi-region users hitting identical stored timestamps. Confirm the package is stateless — any caching of timezone or holiday data needs an invalidation story.

Failure modes —

  • Silent wrongness — off-by-one on DST or leap-year boundaries produces plausible output and fires no alert. Highest severity.
  • Resolution failure on the next Laravel upgrade, blocking patch releases until we patch the dependency.
  • Abandonment — pinned to a frozen package with unresolved license terms.
  • Container conflict — if a DI bridge is attempted, two service containers in one process is a debugging and memory tax.
  • Late license discovery — the worst possible moment to learn the terms are unsuitable.

Ramp-up — Laravel-side work is hours. The Symfony bundle mental model (lifecycle, extension config, tagged services) is 1–2 days for an engineer who has never touched it, and that cost recurs for whoever maintains it next. Document the adapter and mapping decisions in-repo; the package's own docs will not describe the Laravel integration.

Recommendation — Do not adopt as a dependency in a Laravel codebase under current conditions. Framework mismatch, ambiguous license, zero adoption, single maintainer, and overlap with a first-party date stack combine to negative expected value. Revisit only if (a) the license resolves cleanly, (b) a half-day source read reveals meaningful logic absent from Carbon, and (c) a named internal owner accepts the maintenance burden — in which case, fork the core rather than depending on the bundle.

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.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle