nfqde/entity-list-bundle
nfqde/entity-list-bundle is a Symfony bundle for building reusable entity lists with configurable data sources, filters, sorting, pagination, and rendering helpers, simplifying admin and backend list screens.
spatie/laravel-query-builder, Eloquent scopes, cursorPaginator) rather than admitting Symfony/Doctrine into the dependency graph for a pagination feature.COUNT(*)). Any roadmap item that ships list screens should carry an explicit allowlist requirement.Consider it only when all of the following hold:
composer.json constraints admit the project's PHP and Symfony versions (verify first — the *Bundle naming and pre-Flex packaging suggest Symfony 2/3-era code and PHP 5.6/7.x; a PHP 8.2+ target is likely a hard blocker).Look elsewhere — i.e. treat it as a design reference only — when:
Adoption criteria summary: Symfony + Doctrine + version-compatible + funded fork owner + list-heavy admin roadmap. Miss any one and the recommendation flips to reference-and-reimplement.
Executive summary. nfqde/entity-list-bundle is an MIT-licensed Symfony bundle that removes duplicated query and presentation logic from admin "entity list" screens — pagination, filtering, column definition, sorting — by letting you declare a list once and reuse it. The concept is sound and commonly reinvented. The package itself, however, is archived, has zero stars and zero dependents, and is built for a different framework than ours. It is a reference design, not an adoptable dependency.
What we recommend. Do not add it as a dependency. Fund a small, well-scoped internal capability (or adopt a maintained Laravel-native equivalent) that reproduces the pattern: one list definition per entity, compiled into an allowlisted, bounded, paginated query. Expect this to be a bounded piece of work, not a project — the reusable concept is a few hundred lines, and the porting effort for the original would exceed the value of the code recovered.
Why not just take the free code. Adoption cost is not the install; it is the ownership. Archived upstream means 100% of maintenance from day one: no security patches, no PHP or framework upgrade path, no maintainer to escalate to. Every future upgrade becomes an internal ticket, and no external community exists to find or fix the bugs we hit. The code also carries a steep reading cost — Symfony bundle config trees, compiler passes, Doctrine query-builder assembly — that a Laravel team should not acquire to solve pagination.
Risks if we did adopt it anyway. Sorting and filtering from request parameters are a known injection and denial-of-service surface (raw column names reaching ORDER BY, unbounded page sizes, expensive COUNT(*) over joins). Offset pagination degrades at depth. Lazy-loaded relation columns invite N+1 explosions. And because no test suite is guaranteed, framework drift surfaces in production — potentially as a boot-time failure across the whole service rather than a broken screen. Our own implementation must include filter allowlisting, sort-column validation, a page-size cap, and cursor pagination on large tables; those requirements hold regardless of who wrote the original.
Ask. Approve a time-boxed spike (roughly one day) to confirm the stack mismatch and inspect composer.json, then a short design note defining our list-definition contract and filter-allowlist policy. Decision gate: build the small internal capability, or standardize on an existing maintained library. Either way, name an owner and record the rationale.
How can I help you explore Laravel packages today?