- Is survos/api-grid-bundle a Laravel package or a Symfony bundle?
- It is a Symfony bundle, described as using datatables.net together with API-Platform. It is not built for Laravel, even though it is distributed through Composer like Laravel packages are. Dropping it into a Laravel app would require pulling in Symfony and API Platform services it depends on, which is usually not worth it. Laravel developers are better served by Laravel DataTables, Livewire tables, or similar packages.
- What does survos/api-grid-bundle actually do?
- It adds configurable, filterable data grids to Symfony/PHP applications. Grids are exposed as paginated JSON API endpoints so you can build searchable list views and admin tables with minimal setup. The frontend rendering is handled by datatables.net on top of API Platform responses.
- How do I install survos/api-grid-bundle?
- Install it with Composer using the package name survos/api-grid-bundle, then register the bundle in your Symfony application as you would any other bundle. Because the repository overview is marked read-only, check the composer.json version constraints and the README in the repository before installing. Pin a specific version in composer.json rather than relying on a floating constraint.
- Does survos/api-grid-bundle require API Platform?
- Yes. The package description states it uses datatables.net with API-Platform, and the grid endpoints are built around API Platform's JSON output. Your resources need to be exposed through API Platform for the grids to paginate and filter them. If you are not already running API Platform, adopting this bundle means adopting that stack too.
- Does it support filtering, sorting and pagination?
- The bundle is described as providing configurable, filterable grids backed by paginated JSON API endpoints. Pagination is handled server-side so large result sets are not loaded at once. Sorting and per-column search are typically driven by datatables.net request parameters against those endpoints, so verify the exact supported parameters in the repository source.
- Do I need to write JavaScript to use the grids?
- The grid UI is based on datatables.net, so a DataTables frontend (its JavaScript and CSS assets) must be loaded in your page. The bundle's value is the server-side wiring that turns your API Platform resources into grid-ready JSON. Expect to configure columns and templates rather than write a full custom table implementation.
- Which Symfony and PHP versions are supported?
- The available package information does not list explicit Symfony or PHP version constraints, so read the composer.json in the repository before committing. Given the read-only status, test the bundle against your target Symfony and PHP versions in a branch first. Older bundles often break on newer Symfony major versions due to service and DI changes.
- Is survos/api-grid-bundle actively maintained?
- The repository overview is labelled READ ONLY, which strongly suggests archived or frozen code with no active feature development. Treat it as a stable-but-static dependency and pin the version you validate. If you need fixes, plan to fork it or vendor the code into your project.
- What are good alternatives to survos/api-grid-bundle?
- Within Symfony, EasyAdmin and SonataAdmin cover admin list views, and API Platform's own collection endpoints with custom filters handle JSON grids without a bundle. You can also wire datatables.net directly to an API Platform endpoint with a small controller and serializer setup. For Laravel projects, Laravel DataTables or Livewire-powered tables are the natural equivalents.
- How should I test and harden it before production?
- Write functional tests that hit the generated JSON endpoints and assert pagination, filtering and sorting behaviour on realistic data volumes. Check the queries the grids generate for N+1 problems and missing indexes on filtered columns, since grid endpoints are easy to overload. Also review who can access each endpoint, because exposing a full table as a JSON grid can leak fields you did not intend to publish.