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

Simple Datatables Bundle Laravel Package

survos/simple-datatables-bundle

Symfony bundle that integrates the lightweight simple-datatables JavaScript library, helping you render sortable, searchable, paginated HTML tables with minimal configuration. Provides Twig helpers and asset integration for quick table setup.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is a Symfony bundle, not a Laravel package — that labeling matters before anything else, because it determines whether the evaluation is "adopt with caveats" or "not applicable." For a Symfony application it fits a well-understood pattern: Composer-installed bundle, Twig-integrated component, a Stimulus controller registered under the identifier survos--simple-datatables-bundle--table, and PHP-side Column objects describing the table. The underlying rendering and behavior come from the simple-datatables JavaScript library; the bundle is glue. That is a thin, low-ceremony architecture — easy to reason about, easy to remove, and deliberately not a full data-grid framework. It is the right shape only when the product need is "a decent in-memory table on a page," not "a data platform."

Integration feasibility. High for a Symfony shop already using Twig and Stimulus/importmap. Installation is a normal Packagist pull; the repository guidance explicitly forbids type: path repositories, invented version aliases, and hand-edited vendor code, which tells us the intended consumption model is clean and reproducible. The real integration surface is not the PHP API — it is the JavaScript and asset layer: controller mounting, CSS scoping, and how the table is wired into the surrounding page.

Technical risk. Concentrated and specific:

  • Adoption signal is weak. Ten stars and a 0.05 score indicate a package with essentially one consumer base. There is no meaningful community to absorb bugs, and no external pressure to keep it stable. Treat it as internally-owned code that happens to live on Packagist.
  • Known migration churn. The repository is explicitly mid-migration toward survos/grid-bundle / survos/api-grid-bundle. The guidance is careful and honest — simple-datatables is not deprecated and remains appropriate for lighter tables — but the trajectory of shared investment is clearly toward Grid. Any adoption decision should assume a future fork in the road.
  • Transitive asset coupling. Notes reference Pentiminax and warn against removing bundles whose assets are still needed by another backend. That is a smell: asset ownership is partially implicit, and composer why is required before pruning. Unplanned asset removal is a realistic production-breakage vector.
  • Framework mislabeling. The brief calls this Laravel/PHP. It is Symfony. If the consumer application is Laravel, this package is simply not usable and the evaluation ends.

Key questions.

  1. Is the consuming application Symfony? If Laravel, reject and use simple-datatables directly.
  2. What is the realistic upper bound on rows per table? If it exceeds a few thousand, we are in server-side pagination territory and should be evaluating API Grid instead.
  3. Does the app already depend on survos/api-grid-bundle? If yes, the guidance says use Grid — it is already in the dependency graph and a second DataTables setup is explicitly discouraged.
  4. Who owns this dependency internally when upstream goes quiet? Name a person.
  5. Are we willing to accept a future migration to Grid, and what would that cost per page?

Integration Approach

Stack fit. Symfony with Twig, Stimulus, and a modern asset pipeline (importmap/AssetMapper or an equivalent). The bundle assumes you can register a controller and load its JS lazily. Applications on a legacy asset stack, or with global DataTables CSS autoimports already in place, will fight it — the guidance is explicit that controllers stay lazy and CSS stays controller-local.

Migration path. The repository provides a real migration guide, and it should be read before any code is touched. For consumers moving from a prior DataTables integration, the path is per-page, not big-bang: inventory actual component calls, direct Stimulus mounts, PHP Column objects, custom styles, and event handlers first; then port one application/page at a time. Concrete mechanical changes to expect: rename perPage to pageLength, remove backend, and audit every nonstandard option. Behavioral parity items to preserve deliberately — row links, custom Twig blocks, translations, scrolling behavior — are exactly the things that silently regress in a table migration and are not caught by unit tests.

Compatibility. Two hard constraints. First, do not stand up a second DataTables setup alongside this one; Grid owns DataTables core and its extensions and pins, and the bundle must not duplicate that. Second, verify transitive requirements with composer why before removing this bundle or Pentiminax — assets may still be needed by another backend. Keep the registered controller identifier aligned with the README examples (survos--simple-datatables-bundle--table); legacy users are supported, so do not rename unilaterally.

Sequencing.

  1. Confirm Symfony and confirm the table-size requirement is genuinely in-memory.
  2. Ask the user to make an explicit Grid-versus-simple-datatables choice if API Grid is not already present. Do not infer that Grid is always preferred; an explicit prior choice stands.
  3. Install from Packagist normally, no path repositories. For local development, use the documented link script against the application and then verify without local links before deployment.
  4. Pilot one low-traffic page. Run the full verification set: search, sorting, pagination, page sizes, empty rows, custom cells, links, Turbo reconnects.
  5. Check browser errors and actual asset downloads — importmap pin counts alone do not measure page weight.
  6. Roll out page by page, committing only the relevant work and leaving unrelated bundles (notably tabler-bundle) untouched.

Operational Impact

Maintenance. This is a single-maintainer, low-visibility package with an active internal migration underway elsewhere in its author's stack. Plan for the dependency to be effectively frozen for our purposes: pin versions, avoid relying on undocumented behavior, and budget for the possibility that a needed fix is ours to write or upstream ourselves. MIT licensing makes a vendored fork a viable last resort, though forking should be a deliberate, documented decision rather than an accident of drift.

Support. No vendor, no SLA, no support contract. Internal ownership is the whole support model. The practical mitigation is a short internal runbook: which pages use the bundle, which options are overridden, which CSS is controller-local, and what the Grid migration would entail. That document is cheap now and expensive to reconstruct later.

Scaling. The defining limitation. Client-side, in-memory tables work well up to a few thousand rows and degrade non-linearly beyond that — payload size, parse time, and DOM weight all grow together. This is not a tuning problem; it is the wrong tool past a threshold. The architectural escape hatch is clear and pre-built: survos/api-grid-bundle for server-side pagination, facets, and API Platform rendering. Decide the threshold up front and write it down, so the next table request gets routed correctly instead of defaulting to whatever is already installed.

Failure modes to watch.

  • Controller mounted on a node that DataTables reparents, breaking reactivity — the guidance specifically requires the controller on a stable wrapper.
  • Duplicate DataTables initialization from a second setup or a global CSS autoimport.
  • Turbo reconnect breakage: tables render once, then stop responding after navigation. This is the single most likely user-visible regression and must be in the acceptance checklist.
  • Silent breakage when a transitive asset is removed during unrelated cleanup.
  • Local-link verification passing while the published release is broken — the repository warns about exactly this, and it is the failure mode most likely to reach production.

Ramp-up. Low for a mid-level Symfony developer with basic Stimulus familiarity — perhaps a day to a working page, a sprint to a well-understood integration including the migration inventory and verification pass. The cost is not learning the bundle; it is learning the boundary conditions: which table needs Grid, and which asset belongs to whom. That is the knowledge worth capturing early, because it is the part that determines whether this dependency stays a convenience or becomes a quiet liability.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager