FilamentPHP Planning Skill
This skill provides comprehensive guidance for planning and architecting FilamentPHP 4.x applications. It uses a modular reference system to organize topics into focused, maintainable documentation.
Overview
FilamentPHP is a full-stack framework and panel builder for Laravel that accelerates development of admin interfaces. This skill helps you:
- Plan resource structures and relationships
- Design forms, tables, and infolists
- Implement authentication and multi-tenancy
- Configure panels and navigation
- Build custom widgets and actions
- Follow code quality best practices
Topic References
Each major topic area has dedicated reference documentation:
Core Components
- Forms - Form components, validation, relationships, file uploads
- Tables - Columns, filters, search, actions, bulk operations
- Resources - CRUD operations, navigation, relationships, authorization
- Infolists - Read-only data display, entries, customization
Features & Configuration
- Notifications - Creating and sending notifications, actions
- Widgets - Stats overview, charts, custom widgets
- Schemas - Layout components, global configuration
- Actions - Table actions, bulk actions, relationship actions
Advanced Topics
- Panel Configuration - Authentication, MFA, SPA mode, navigation
- Tenancy - Multi-tenancy setup, scopes, middleware
- Global Search - Configuration and customization
- Testing - Resource, table, and form testing strategies
Best Practices
- Code Quality - File organization, reusable components, patterns
- Migration Guide - V3 to V4 upgrade strategies
When to Use This Skill
Planning Phase
- Designing admin panel structure
- Determining resource relationships
- Planning navigation and organization
- Selecting appropriate components
Implementation Phase
- Implementing forms and validation
- Building table views with filters
- Creating custom widgets
- Setting up authentication flows
Optimization Phase
- Refactoring for code quality
- Implementing global configurations
- Adding advanced features
- Performance tuning
Common Patterns
Resource Structure
// Use separate classes for maintainability
public static function form(Schema $schema): Schema
{
return CustomerForm::configure($schema);
}
public static function table(Table $table): Table
{
return CustomersTable::configure($table);
}
Global Configuration
// Apply defaults in service provider
TextColumn::configureUsing(function (TextColumn $column): void {
$column->toggleable();
});
Conditional Features
// Use feature flags for dynamic behavior
TextInput::make('name')
->autofocus(FeatureFlag::active())
Architecture Principles
- Separation of Concerns - Split forms, tables, and schemas into dedicated classes
- Reusability - Use global configurations for common patterns
- Flexibility - Leverage closures for dynamic behavior
- Performance - Defer loading, eager load relationships, use Scout for search
- Maintainability - Follow consistent naming and organization patterns
Quick Reference
- Forms: TextInput, Select, FileUpload, RichEditor, Builder
- Tables: TextColumn, IconColumn, SelectColumn, ImageColumn
- Layouts: Grid, Section, Fieldset, Tabs, Wizard
- Actions: CreateAction, EditAction, DeleteAction, BulkActions
- Widgets: StatsOverview, ChartWidget, Custom Widgets
Getting Started
- Review the relevant reference documentation for your use case
- Check the code quality guide for organizational patterns
- Follow the examples in each reference file
- Apply global configurations where appropriate
- Test thoroughly using the testing guide
Additional Resources
Note: This skill is optimized for FilamentPHP 4.x. For v3 compatibility, refer to the migration guide.
