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

Datetimepicker Bundle Laravel Package

mwsimple/datetimepicker-bundle

MWSImple DateTimePickerBundle is a Symfony bundle that adds date and time picker support to forms, making it easier to render and handle date/time inputs in web applications with minimal configuration.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — framework mismatch is the headline risk. Despite the brief describing this as a Laravel/PHP package, mwsimple/datetimepicker-bundle is a Symfony bundle, not a Laravel package. Bundles assume Symfony's kernel, bundle registration (config/bundles.php), the DependencyInjection component, Twig, and the Symfony Form component. Laravel has no bundle registry, uses service providers, Blade, and its own validation/form conventions. There is no drop-in path: nothing in a Symfony bundle auto-discovers in Laravel, and the Twig templates and form types will not render or resolve without an adapter layer.

What it most likely contains. Based on the name and the era of "Bootstrap DateTime picker" bundles, expect: (a) a form type wrapping a text input, (b) Twig templates that emit a container div, (c) bundled or CDN-referenced copies of jQuery, Moment.js, and Eonasdan's bootstrap-datetimepicker JS/CSS, and (d) a small DI extension for config. The genuinely valuable part is the initialization config and asset wiring — perhaps 100–200 lines. Everything else is Symfony plumbing you would discard.

Integration feasibility — low as-is, moderate as a reference. To use this in Laravel you would need to build: a service provider with vendor:publish for assets, a Blade component or Form::macro for the input, a @push/@stack directive for script injection, and a config file mirroring the bundle's options array. That is effectively a re-implementation; the bundle contributes specification, not code.

Technical risk — high.

  • Adoption signal is absent. Zero stars, zero score, zero dependents. No downstream project has validated this in production. There is no community to catch regressions, no issue history to mine for known breakage, and no evidence of recent maintenance.
  • Upstream dependency is end-of-life. Eonasdan's bootstrap-datetimepicker has been deprecated for years in favor of Tempus Dominus, and Bootstrap 5 removed the Glyphicon icon dependency the widget relies on. You would be adopting an unmaintained wrapper around an unmaintained library.
  • Stale front-end stack. jQuery + Moment.js is a meaningful bundle-size and CSP burden in 2024-era front ends, and Moment is itself in maintenance mode.
  • Supply-chain and patching exposure. Vendored or CDN-pinned JS without a version policy means no CVE path. Date parsing is a low-severity surface, but the jQuery dependency is not.
  • Unknown constraints. Composer version pins (PHP, Symfony) are unknown; a bundle written for Symfony 2/3 will not resolve against modern PHP without --ignore-platform-reqs, which is its own liability.

Key questions to resolve before any decision.

  1. Is the underlying picker Eonasdan/bootstrap-datetimepicker, Tempus Dominus, or a fork — and what version?
  2. Are assets vendored into the repo, referenced by CDN, or pulled via Bower/npm? Is there a lockfile?
  3. What are the declared composer.json constraints for PHP and Symfony, and when was the last commit?
  4. Does the widget support Bootstrap 5 markup and a CSP-friendly (non-inline) initialization path?
  5. Is there an existing, maintained Laravel equivalent (Blade component, Livewire datepicker, or Filament field) that already solves this?
  6. Do we actually need a JS picker, or does <input type="datetime-local"> cover the requirement with zero dependencies?

Integration Approach

Stack fit: do not integrate directly. Treat the repository as a specification document, not a dependency. Read the bundle's form type and JS init to extract: the option surface (format, min/max date, locale, stepping, side-by-side layout), the DOM contract, and the event names it emits. Those are the real requirements; the Symfony wiring is irrelevant to a Laravel codebase.

Recommended migration path — replace, don't port.

  1. Requirement capture (0.5 day). Enumerate the picker behaviors the product actually needs. In practice this is usually: date+time selection, min/max bounds, locale/timezone handling, and a formatted hidden input for form submission.
  2. Default to native. Start with <input type="datetime-local"> plus server-side validation. It is accessible, mobile-native, CSP-safe, and zero-dependency. If it satisfies the UX acceptance criteria, stop here — this is the highest-value outcome.
  3. If a rich picker is required, select a maintained library. Flatpickr or Tempus Dominus, distributed via npm/Vite rather than a vendored bundle, with initialization in a small Alpine or vanilla controller.
  4. Wrap in Laravel properly. A Blade component (<x-datetime-input>) plus a FormRequest rule, with assets compiled through Vite. This is roughly a day of work and produces something the team owns and can test.
  5. Only if the bundle's option surface is unusually rich would a thin adapter be justified — a service provider publishing assets, a Blade component emitting the container, and a config file transcribing the bundle's defaults. Budget 2–3 days including tests, and accept that you now maintain a fork of an abandoned library.

Compatibility notes. Assume jQuery and Moment are required until proven otherwise; assume Bootstrap 3/4 markup. If the app is on Bootstrap 5 or Tailwind, expect CSS conflicts around popover positioning and z-index. Verify the widget's timezone semantics — client-local versus UTC — because that is where date pickers silently corrupt data.

Sequencing. Spike (half day) → requirement capture → native-input decision gate → if rejected, library selection and Blade wrapper → QA across mobile Safari, Chrome, and Firefox → accessibility pass. Do not sequence this before the decision gate; the spike exists to retire the bundle question early.

Operational Impact

Maintenance — you inherit full ownership. With zero dependents, there is no upstream community to absorb bugs. If you adopt it, budget for a fork: pinning the JS, patching for Bootstrap/CSP/accessibility issues, and tracking Moment/jQuery deprecations yourself. This is a recurring cost on a component that delivers no competitive differentiation.

Support. No maintainer responsiveness to rely on, no Stack Overflow corpus specific to this bundle, no security advisory feed. Incidents route to whoever touched the datepicker last — a bus-factor-of-one pattern that is worth avoiding for a UI primitive.

Scaling. Effectively a non-issue: this is a client-side widget with no server, storage, or concurrency characteristics. The only scale-adjacent concerns are payload size (jQuery + Moment + locale files can exceed 300 KB uncompressed if locales are naively bundled) and CDN reliability if assets are not self-hosted. Both are solved by Vite bundling and tree-shaken locale imports.

Failure modes to monitor.

  • Locale/timezone drift — the classic datepicker defect: a user in UTC+9 submits a date that lands a day early in the database. Mitigate with UTC storage and explicit conversion at the boundary.
  • CSP violations from inline initialization scripts.
  • jQuery version conflicts if other app code pins a different major.
  • Silent breakage on Bootstrap upgrade — popover positioning and Glyphicon removal.
  • Asset publish drift — published assets going stale relative to the package after a composer update.
  • Validation bypass — client-side constraints not mirrored server-side; the widget must never be the sole guard on min/max dates.

Ramp-up. For a Laravel team, learning this Symfony bundle is a net-negative exercise: the framework concepts (bundles, DI extensions, Twig form themes) do not transfer. The underlying picker's option API is learnable in an hour, and a Blade wrapper is a comfortable task for a mid-level engineer. Realistic cost to a working, tested Laravel date input via the replacement path: one to two engineer-days. Via a Symfony-bundle adapter: three to five days plus ongoing fork maintenance.

Bottom line for the roadmap. Given zero stars, zero dependents, an EOL underlying library, and a framework that does not match the target stack, this package should not enter the dependency graph. Log it as a rejected option with the requirement notes extracted from it, and proceed with the native input or a maintained library behind a Blade component. The decision cost is half a day; the cost of adopting it is an unowned fork on a UI primitive the product will want to change.

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