jgm/tablebundle
A PHP/Symfony bundle for building and rendering data tables from arrays or query results, with configurable columns, sorting, pagination, and Twig templates for flexible, reusable table output.
filter Twig function is now confirmed as part of its rendering surface). Any Laravel-side need must be met by a Blade-plus-controller pattern or a Laravel-native grid package; this repo stays excluded from Laravel dependency evaluation.getActiveFilter() → getActiveFilters() in a patch release. That is a breaking change under SemVer, confined to a narrow (and previously typo-named TablieView) API. It is direct evidence that consuming this package means pinning, forking, and owning the call sites.Consider it only when all of the following hold:
getActiveFilter(), which now fatal-errors in favour of getActiveFilters().Look elsewhere when:
To executives: This is a small, MIT-licensed Symfony bundle that renders data tables entirely on the server, with no JavaScript. The concept is valuable — it maps to accessibility, printable/exportable reports, and low-bandwidth users. The artifact has just received a community bugfix release, which is welcome but is not a maintenance commitment: no roadmap, no support path, no release discipline (the patch release renames a public method). Recommendation is unchanged: treat it as design input, not a purchase or a dependency. License cost is zero; ownership cost is non-trivial and the risk is unpatched code in a production path. The strategic read — that a maintained no-JS table capability is an unmet need worth a small internal build — still holds.
To engineering: It is a Symfony/Twig bundle, not a Laravel package — keep it out of Laravel dependency reviews. If we have a legacy Symfony admin surface, lift the column/render/filter model and reimplement it in about a day; do not add it to composer.json on a supported branch. If anyone does vendor it, pin the exact version and patch getActiveFilter() → getActiveFilters() at our call sites — v1.3.3 broke that API in a patch release, so assume no SemVer protection going forward. For new work, use EasyAdmin or a Twig partial, and carry forward the actual decision: no-JS by default, enhance with JS.
How can I help you explore Laravel packages today?