Feature Overview
This page helps you choose the right building blocks before you start coding.
Capability Map
| Capability | What it gives you | Primary entry point |
|---|---|---|
| Column modeling | Strongly-typed column definitions in PHP | /ux-datatables/columns/overview/ |
| Client-side processing | Inline rows or Ajax-loaded datasets handled entirely in the browser | /ux-datatables/guide/client-side-processing/ |
| Server-side processing | Paging, ordering, and filtering on the backend | /ux-datatables/guide/server-side-processing/ |
| Declarative filters | Filter popover with Doctrine conditions | /ux-datatables/guide/filters/ |
| Row actions & detail rows | Edit, delete, custom Ajax actions, collapsible detail templates | /ux-datatables/columns/action-column/ |
| DataTables extensions | Export, selection, responsiveness, scrolling, etc. | /ux-datatables/extensions/ |
| API Platform integration | Hydra response adaptation and auto Ajax wiring | /ux-datatables/integrations/api-platform/ |
| Mercure live updates | SSE-driven Ajax reload when data changes | /ux-datatables/integrations/mercure/ |
| Inline editing | Edit rows via a modal with auto-generated Symfony Forms | /ux-datatables/reference/edit-modal/ |
| Ajax security | Route protection, CSRF mutations, entity voters | /ux-datatables/getting-started/security/ |
| Reusable table classes | Encapsulate all table logic in one class | /ux-datatables/reference/abstract-datatable/ |
| Code generation | Scaffold DataTable classes from Doctrine entities | /ux-datatables/reference/maker/ |
Typical Architecture
- Build a
DataTableconfig or anAbstractDataTableclass. - Define columns and options.
- Pick a processing strategy: inline rows, Ajax-powered client-side, or server-side.
- Add filters, actions, and extensions only when needed.
- Protect Ajax routes before production.
Next Step
Use /ux-datatables/features/when-to-use-what/ or jump to /ux-datatables/recipes/ for copy-paste setups.