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

mablae/datetimepicker-bundle

mablae/datetimepicker-bundle is a Symfony bundle that simplifies adding a JavaScript date and time picker to your forms. It provides reusable form types and asset integration for quick, minimal-configuration datetime selection in templates.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Mislabeled by the intake framing: this is mablae/datetimepicker-bundle, a Symfony bundle, not a Laravel package. It ships three things — a Symfony Form Type, a Twig form theme block that emits data-* attributes, and a bundled copy of the Eonasdan Bootstrap DateTimePicker JS/CSS. Its value is realized only inside Symfony's Forms + Twig + DI container triad. In a Laravel codebase none of those seams exist: no bundle registration, no form-type extension points, no Twig form themes in the same sense. Architecture fit for Laravel is poor; for a legacy Symfony 3.x/4.x app already on Bootstrap 3 and jQuery, fit is acceptable but dated.

Integration feasibility. Low as a Composer dependency in Laravel. The realistic extractable artifact is the pattern: a text input carrying data-format / data-locale / picker options, initialized on DOMContentLoaded, submitting one canonical string the server parses with an explicit format. That pattern is 30–60 lines to reimplement as a Blade component plus a date_format validation rule. Treat the repo as a reference implementation, not an install.

Technical risk. High, and concentrated in ownership rather than runtime.

  • Abandonment: 1 star, 0 dependents, Symfony 2/3-era structure — no PHP 8.x or Symfony 5+/6+/7 compatibility guarantees, no security patch path.
  • Front-end lock-in: requires jQuery, Bootstrap 3 markup, and Moment.js. Conflicts with Bootstrap 5, Tailwind, and modern bundle budgets.
  • Asset pipeline mismatch: assumes Symfony Resources/public publishing conventions; Laravel Vite/Mix will not discover these assets, so any port is a manual copy into resources/js / resources/css.
  • Correctness surface the bundle does not solve: timezone handling, locale-specific format strings (Moment tokens are not portable to PHP date formats), client/server validation drift, accessibility, and mobile UX. These become your product risk the moment the field is customer-facing.

Key questions.

  1. Is the requirement "a Bootstrap DateTimePicker" or "Symfony Form integration"? Only the latter needs this repo at all.
  2. Which Bootstrap, jQuery, Moment, and picker versions are pinned, and does anything in our front-end stack tolerate them?
  3. Are we on Symfony at all — and if so, which version, versus native <input type="datetime-local"> or Symfony UX?
  4. Is the surface internal/admin, or customer-facing with accessibility, i18n, and timezone requirements?
  5. Can we isolate it behind our own form type / Blade component so removal is a one-file change?
  6. What is the canonical wire format and where is timezone conversion owned?
  7. Is the build-vs-borrow trade worth ~1–2 engineer-days against indefinite ownership of an unmaintained widget?

Integration Approach

Stack fit. Laravel: no. Do not attempt to install or bridge this bundle — pulling symfony/form and Twig form theming into Laravel's container costs more than writing the component from scratch and leaves a permanent architectural wart. Symfony 3.x/4.x on Bootstrap 3/jQuery, internal admin forms: yes, with isolation. Symfony 5+: verify constraints first and assume incompatibility until proven otherwise.

Migration path. Two viable paths, and a TPM should pick one explicitly rather than let engineering drift:

  • Path A (recommended for Laravel): reject as a dependency; harvest the pattern. Build a Blade component wrapping the input contract, initialize a maintained picker (Flatpickr, Tempus Dominus successor, or native datetime-local), normalize to one ISO-8601 wire format, validate with date_format, store UTC, render in the user's timezone.
  • Path B (Symfony legacy only): adopt behind a wrapper. Register the bundle, add your own App\Form\Type\DateTimePickerType that extends or composes the bundle's type, and reference only your wrapper in forms and templates. This makes the eventual swap to Symfony UX a single-file change and contains the abandonment blast radius.

Compatibility. Highest risk sits at the framework boundary (Symfony Form/DI version), then at the front-end boundary (Bootstrap 3 + jQuery + Moment), then at build tooling (Assetic-era publishing vs. Vite/Mix). Validate all three before committing; a green prototype on one does not imply the others.

Sequencing.

  1. Frame the requirement. Confirm whether the ask is "Symfony form integration" or "a nicer date input." This single answer decides adopt vs. reference.
  2. Decide the platform question. If Laravel, close the package evaluation here and shortlist maintained, framework-appropriate pickers.
  3. Constraint audit (Symfony only). Check PHP/Symfony/Bootstrap/jQuery/Moment pins against the target app and the asset pipeline.
  4. Wire-format and timezone decision. Pick ISO-8601 or Y-m-d H:i:s as the only accepted server input; define where UTC↔local conversion happens. Do this before any UI work.
  5. Prototype the boundary, not the widget. Include CSP compliance (avoid inline init), locale switching, old() repopulation after validation failure, and server-side rejection of malformed strings.
  6. Isolate and document. Wrap in your own type/component, pin the version, and file a backlog note to migrate to native inputs or Symfony UX at the next touch.

Operational Impact

Maintenance. The dominant cost, and it is entirely yours. With 1 star and 0 dependents there is no upstream to inherit fixes from; pinning the version is the only defensible posture, and pinning means you own every future incompatibility with PHP, Symfony, Bootstrap, or a CSP policy. Estimate this as a small but permanent tax versus a one-time 1–2 day build savings on day one — the trade only looks favorable if the surface is genuinely throwaway.

Support. Effectively none. No ecosystem for bug triage, no security advisory path, no community answer when a picker breaks in one browser. Escalation is "an engineer reads the source," which is fine for a 500-line wrapper and not fine for anything with a stated uptime or compliance expectation. Set stakeholder expectation accordingly: this is borrowed code, not a supported component.

Scaling. Runtime scale is a non-issue — it is a client-side widget. Organizational scale is the real concern: without a single own-your-wrapper policy, teams will each hand-initialize pickers differently, duplicate assets, drift on date formats, and produce inconsistent backend validation. Standardize on one component, one wire format, one timezone convention before a second team touches dates.

Failure modes to monitor.

  • Framework boundary breakage on PHP/Symfony upgrade (Symfony path) or on any attempt to bridge it into Laravel.
  • jQuery/Bootstrap version conflict producing broken or unstyled markup.
  • Assets silently missing from Vite/Mix builds after a front-end refactor.
  • CSP violations from inline picker initialization.
  • Timezone and locale mismatches — correct in dev, wrong for a user in another region.
  • Client-side format accepted but server-side date_format rejecting it, producing a validation loop users cannot escape.
  • Silent abandonment: no upgrade path when the picker's JS dependency is deprecated upstream.

Ramp-up. Front-end engineer replicating the picker behavior: low — hours, not days. Engineer forcing the Symfony bundle to work outside Symfony: high, and the effort is unrecoverable if the decision is later reversed. The asymmetry is the whole argument: take the pattern, leave the package. Recommended TPM position — reject as a Laravel dependency, cite it as the reference contract, adopt only in a legacy Symfony/Bootstrap 3 admin context behind an internal wrapper, and log a dated migration note to native inputs or Symfony UX.

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