vysokeskoly/data-grid-bundle
A PHP data grid bundle for building configurable, sortable, and filterable tables with pagination, reusable column definitions, and clean integration into your application's listings and admin views.
Architecture fit — first, a framing correction. Despite the brief describing this as a "Laravel/PHP package," vysokeskoly/data-grid-bundle is a Symfony bundle (a fork of the long-dormant Kitpages DataGridBundle). It is built on Symfony's DI container, EventDispatcher, Form component, and Twig. It has no Laravel service provider, no facade, no config/*.php publishable config, and it does not target Illuminate contracts. In a Laravel codebase it is not integrable without a bespoke bridge; in a Symfony codebase it is a drop-in only if the Symfony major version matches.
Integration feasibility — low. The package is a thin, unmaintained fork: 0 stars, 0 dependents, last release April 2022. Its value proposition is server-side grid rendering (Doctrine ORM/ODM/array sources, pagination, column definitions, filter forms, Twig output). That's a solved problem in both ecosystems via maintained alternatives, so adopting an abandoned bundle buys nothing and costs ownership.
Technical risk — high, concentrated in four areas:
composer.json before anything else — this usually blocks modern Symfony 6/7 outright.Key questions for the requester:
composer.json, and does the app run any of them?Stack fit. Pass/fail gate first: if the product is Laravel, do not integrate — the correct move is a native option (Filament tables, Livewire + a query-builder table, or a JS grid such as AG Grid/Tabulator over an API). If the product is Symfony 4.4/5.x on PHP ≤8.1 with Doctrine 2, the bundle can technically be registered via bundles.php and configured under config/packages/, but it still fails the maintenance test below.
Migration path. Two scenarios:
Compatibility. Confirm before estimating: PHP constraint, Symfony major, Doctrine ORM/ODM major, Twig major, and whether symfony/form filter integration still matches the app's form theme. Expect to need composer why-not checks against every other pinned package; a 2022 bundle usually conflicts with anything modern.
Sequencing.
composer require --dry-run. This single step either kills the initiative or produces a real constraint list.Maintenance. We become the maintainers on day one. Realistic recurring cost: a few hours per quarter for dependency bumps, plus an unplanned block whenever a PHP or Symfony upgrade lands. Add a standing exception to the dependency-upgrade runbook naming this package as a known blocker.
Support. There is no support channel with a response expectation. Escalation is "read the source." That's acceptable for a utility we could rewrite in a week; it is not acceptable for anything on a revenue path. Internal documentation of the grid API and its quirks is mandatory, not optional.
Scaling. The bundle's server-side pagination model is sound for large tables, but the risks are in our code, not theirs: N+1 queries from column resolvers touching lazy relations, deep OFFSET scans on large tables, and filter forms generating unindexed LIKE clauses. Load-test at production row counts with query logging on; treat any per-row resolver doing I/O as a defect.
Failure modes. Ranked by likelihood: (1) dependency conflict blocks a framework upgrade — near-certain within 12–18 months; (2) PHP deprecation warnings escalating to errors on a minor bump; (3) silent behavior change in a Doctrine or Twig upgrade breaking rendering with no upstream fix; (4) a transitive CVE with no patched release, forcing an emergency fork. Mitigation for all four is identical and cheap: pin exactly, vendor the source, and keep the grid definitions behind our own interface.
Ramp-up. A mid-level developer needs roughly 1–2 days to be productive with the bundle's column/field/grid-event model, assuming they already know Symfony and Twig. The tax is the undocumented edges — the source is the only reliable reference, and there is no issue history to search. Onboarding cost is low in absolute terms but permanent: every new hire re-learns an orphaned API that no public tutorial or LLM has seen much of.
Verdict. Score 0 with 0 dependents and a 2022 last release is an accurate signal. Recommend do not adopt; if already present, contain it behind an interface and schedule replacement. The only defensible case is a Symfony 4.4/5.x application where a working grid already exists and the alternative is a larger rewrite — and even then, fork it deliberately rather than depending on it.
How can I help you explore Laravel packages today?