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

Datatables Bundle Laravel Package

waylandace/datatables-bundle

A Laravel bundle for integrating DataTables into PHP applications, offering reusable table configuration and server-side processing to help developers add interactive, searchable data grids quickly.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor, and largely disqualifying. The package is a Symfony bundle, not a Laravel package. That is not a packaging detail; it is a structural mismatch. Symfony bundles rely on Kernel::registerBundles(), the Symfony DI container's compiler passes and tagged services, and Symfony's event dispatcher. Laravel has no concept of a bundle, no bundle auto-discovery, and a materially different container (service providers, facades, deferred bindings). Nothing in this package will autoload or register in a Laravel application without a hand-written adapter.

What is actually valuable here is the idea, not the artifact: server-side processing for DataTables requires parsing the draw/start/length/search[value]/order[i][column]/order[i][dir] request contract, translating it into a query with safe parameter binding, and emitting the {draw, recordsTotal, recordsFiltered, data} envelope. That logic is framework-agnostic and is roughly 200–400 lines of code. The bundle's contribution is wiring it into Symfony's request/response cycle and presumably a Doctrine query builder.

Integration feasibility — low without a fork. There is no plausible path to composer require waylandace/datatables-bundle inside a Laravel app. A viable path exists only if the core query-building service is decoupled from Symfony/Doctrine: you would fork, strip the bundle class and DI config, and re-expose the logic as a Laravel service provider over Eloquent's query builder. That is a rewrite of the integration layer, not an integration.

Technical risk — high across every axis. Zero stars and zero dependents means no external validation, no issue history to mine, no Stack Overflow surface, and no one else hitting the bugs before you. The last release was August 2020, which places it firmly in the PHP 7.2–7.4 / Symfony 4–5 era. Laravel 10/11 require PHP 8.1+, and a 2020-vintage composer constraint will almost certainly block install outright. DataTables itself shipped v2 in 2024 with protocol and naming changes; a 2020 wrapper will not have tracked those. And critically: this code sits directly on top of user-supplied query parameters. An unmaintained package in the SQL-construction path of a public-facing table endpoint is a genuine injection and DoS surface, not a theoretical one.

Key questions for the maintainer (or for your own spike):

  • Is the query-building core decoupled from Symfony's Request and from Doctrine's QueryBuilder, or is it fused to both?
  • What are the composer.json PHP and Symfony version constraints? Does it run at all on PHP 8.2/8.3?
  • Is there test coverage of the search/order/filter parsing and of parameter binding?
  • Which DataTables protocol version does it target — 1.x or 2.x?
  • Is the "WaylandAce" namespace a single-person internal project published to Packagist, and is there any maintenance intent?
  • Why not yajra/laravel-datatables, which is the de facto Laravel standard, actively maintained, and has thousands of dependents?

Integration Approach

Stack fit — effectively none as-is. For a Laravel codebase, the expected stack fit is a service provider plus a publishable config file, ideally a Facade and a fluent builder. This package delivers a Symfony bundle class, services.xml/services.yaml DI definitions, and Symfony-typed controller or event code. On the Laravel side you would be reconstructing the entire public surface.

Recommendation: do not adopt. Build or buy elsewhere. In priority order:

  1. yajra/laravel-datatables — the correct default. Eloquent and Query Builder support, active releases, Laravel 10/11 compatibility, large community, and a maintenance posture this package cannot match. Adopt this unless a specific blocker exists.
  2. Hand-rolled implementation — if the requirement is narrow (one or two tables), the request-parsing plus response-envelope logic is a half-day of work, sits fully inside your codebase, and carries no third-party abandonment risk. This is often the cheaper long-run choice for a small surface area.
  3. Fork-and-extract — only if the bundle contains non-trivial logic you specifically need (unlikely, given the maturity signals). Scope it as an extraction, not an installation: copy the DataTables request/response handling, discard the Symfony plumbing, rewrite the query layer against Eloquent, add tests for the parameter parsing and binding, and vendor it internally.

Migration path. There is no upgrade path from this package to anything, because there is no installed base to migrate from — you would be the first. That is the telling signal. If you have already written code against it, treat that as a greenfield replacement exercise: the DataTables client-side configuration is portable and unchanged, so only the server endpoint swaps.

Compatibility. Assume PHP ≤7.4 semantics: no typed properties in the modern style, no enums, no readonly, likely no constructor property promotion, and possible use of deprecated dynamic properties. Expect E_DEPRECATED noise to fatal errors on PHP 8.1+. Also expect Symfony 5 DI conventions that will not translate cleanly to Laravel's container without rewriting service definitions as provider register()/boot() methods.

Sequencing if you proceed anyway. (a) Timebox a one-day spike: clone, run the test suite or lack thereof, and attempt to instantiate the core service outside Symfony. (b) Only then decide fork versus rewrite. (c) Do not sequence this ahead of a table feature that actually ships revenue — the opportunity cost against yajra is the real cost. (d) If forking, land the fork behind your own namespace and interface so a future swap is a one-file change.

Operational Impact

Maintenance — you own it entirely. Upstream is dormant: no releases in five years, no dependents, no evidence of a triage process. There is no support contract, no security advisory channel, and no one to file an issue with. Anything you adopt becomes your code the moment it lands, with the added friction of living in a fork or vendor directory rather than your normal application tree.

Support and documentation. Expect thin or absent docs. Ramp-up cost is "read the source," which is tolerable for a 300-line utility and unpleasant for anything larger. Knowledge will concentrate in whoever does the extraction, creating a single-person bus factor on an internal component.

Scaling. Server-side processing exists precisely to make large tables viable, so the scaling question is whether the generated queries are index-friendly and whether recordsFiltered triggers a full COUNT(*) over an unindexed LIKE '%term%' search. A 2020 wrapper almost certainly issues an unconditional count query per draw; on a million-row table with a leading-wildcard search that is a per-keystroke table scan. Validate EXPLAIN output on realistic data before trusting it, and debounce client-side regardless. Also check whether filtering is applied in SQL or in PHP — the latter would quietly load the whole table into memory and defeat the entire purpose of the feature.

Failure modes to plan for:

  • Composer install rejection on PHP 8.1+ / Laravel 10+ — the most likely first failure, and the cheapest to discover.
  • Silent protocol drift — DataTables 2.x changed parameter and response handling; a stale wrapper may return a response the client half-understands, producing empty tables with no server error.
  • SQL injection or performance cliff in the search/order parsing path — order-column handling is the classic vector, since column names are frequently interpolated rather than whitelisted.
  • Deprecation-to-fatal creep as PHP minor versions land, with no upstream patch forthcoming.
  • Abandonment by stealth — no signal that anything is wrong until a client-side library upgrade breaks the endpoint in production.

Ramp-up. Low for the concept, moderate for the code, but the real cost is the ownership transfer: every hour spent understanding this bundle is an hour not spent on yajra's documented API. For a TPM, the decision is straightforward — a zero-star, five-year-stale Symfony bundle has no defensible place in a Laravel stack. Recommend yajra/laravel-datatables or a small in-house implementation, and close this evaluation.

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.
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
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