jeffersongoncalves/filament-action-export
Pros:
afterStateUpdated) to sync JS/TS state with PHP, reducing manual DOM manipulation.Cons:
name() → statePath()).dompdf/snappy), adding complexity for PDF generation (e.g., font handling, large file support).getState()) may introduce edge cases in complex tables (e.g., nested forms, dynamic columns).Laravel Ecosystem Fit:
FilamentActionExportServiceProvider, minimizing manual setup.modifyQueryUsing for pre-export query manipulation (e.g., adding with() for relationships).Filament-Specific:
bulkActions/headerActions, requiring minimal table definition changes.TextColumn, Relationship) for type-safe exports.Potential Friction Points:
filament-export.js) must be compiled if using Laravel Mix/Vite. May need mix-manifest.json adjustments.chunk_size (1000) may need tuning for exports >10K rows (risk of memory leaks or timeouts).| Risk Area | Severity | Mitigation |
|---|---|---|
| Filament Version Drift | High | Monitor Filament major releases; test compatibility early. |
| PDF Rendering Issues | Medium | Test with dompdf/snappy; validate fonts/layouts for production use cases. |
| State Corruption | Medium | Avoid deep nesting in extraViewData; use statePath() for Livewire v4+. |
| Performance Bottlenecks | Medium | Profile exports with telescope; adjust chunk_size for large datasets. |
| Custom Template Breaks | Low | Publish views early; test edge cases (e.g., empty columns, special chars). |
Filament Version Strategy:
Export Scale Requirements:
PDF Customization Needs:
Maintenance Overhead:
Livewire v4 → v5 compatibility issues)?Security Considerations:
Alternative Evaluation:
spatie/laravel-excel, custom Livewire components)?Core Stack Compatibility:
Dependency Graph:
jeffersongoncalves/filament-action-export
├── livewire/livewire (~4.0) # Filament v5 dependency
├── barryvdh/laravel-dompdf (~1.0) # Default PDF driver
│ └── dompdf/dompdf (~2.0)
├── spatie/laravel-excel (~3.1) # For CSV/XLSX
└── filament/filament (~5.0) # Host framework
snappy is optional (requires barryvdh/laravel-snappy).Discovery Phase:
Pilot Integration:
users or orders) to test:
dompdf/snappy compatibility).FilamentExportHeaderAction for full-table exports; FilamentExportBulkAction for selections.Incremental Rollout:
Fallback Plan:
spatie/laravel-excel for CSV/XLSX.dompdf directly).| Component | Compatibility | Mitigation |
|---|---|---|
| Filament v5.x | ✅ Full support | Monitor for breaking changes in Filament’s Livewire integration. |
| Livewire v4+ | ✅ Required | Downgrade if using Livewire v3 (not recommended). |
| PHP 8.2+ | ✅ Required | Use platform_check in composer.json to block older PHP. |
| Blade Templates | ✅ Customizable | Publish views early; test with complex layouts. |
| Custom Columns | ✅ Supports Filament’s column types | Test with Relationship, BelongsToMany, and custom column classes. |
| Large Datasets | ⚠️ May need tuning | Increase chunk_size in config; test with 100K+ rows. |
| Multi-Tenant Apps | ⚠️ Tenant context not enforced | Add modifyQueryUsing to scope exports to current tenant. |
Prerequisites:
composer require jeffersongoncalves/filament-action-export "^3.0"
composer require barryvdh/laravel-dompdf # or snappy
Core Setup:
php artisan vendor:publish --tag=filament-action-
How can I help you explore Laravel packages today?