a909m/filament-generate-helpers
Composer 安装命令:
composer require a909m/filament-generate-helpers
包简介
Effortlessly generate reusable form fields and table column helpers for Filament resources based on Laravel models, streamlining your development workflow.
README 文档
README
Filament-Generate-Helpers
Effortlessly create reusable form fields and table column helpers for Filament resources based on Laravel models. This package is not just about generating code—it introduces a methodology for managing forms and tables in your Filament projects, making them reusable and easier to maintain.
Why Use This Package?
When building a Filament project, it's common to encounter repetitive definitions for forms and tables in various contexts, such as:
- Resources: A resource's form and table are defined independently.
- Relation Managers: You might reuse a form or table inside a relation manager.
- Table widgets or Custom Pages: Forms and tables are often replicated here.
- Select Forms (
createOptionForm): Similar forms might be required when creating options in aSelectfield.
The Problem
If a change is required in the form or table (e.g., adding a new field or column), you have to update it in multiple places. This is time-consuming, error-prone, and violates the DRY (Don't Repeat Yourself) principle.
The Solution
This package provides a systematic approach:
- Centralizes the definitions of form fields and table columns in reusable traits and helper classes.
- Allows you to make changes in one place and have them reflected everywhere.
Features
- Reusable Form Fields: Generate reusable form fields organized into a trait.
- Reusable Table Columns: Generate reusable table columns organized into a trait.
- Centralized Customization: Changes to the traits automatically propagate across all resources, relation managers, Table widgets, etc.
- Seamless Integration: Works effortlessly with Filament's workflow.
Installation
You can install the package via composer:
composer require a909m/filament-generate-helpers
Usage
Step 1: Generate Helpers
To generate helpers for a model, use the following Artisan command:
php artisan filament-generate-helpers:run User
Under the hood, this command leverages Filament's built-in feature for automatically generating forms and tables. You can learn more about this feature in the Filament documentation.
This will create the following structure in your app/Filament/Helpers directory:
.
+-- Helpers
| +-- User
| | +-- UserHelper.php
| | +-- Traits
| | | +-- UserFormFields.php
| | | +-- UserTableColumns.php
Step 2: Use the Helpers
In your Filament resources, relation managers, Table widgets, or any other context, you can reuse the generated helpers.
Example: Using Helpers in a Resource
namespace App\Filament\Resources\UserResource; use App\Filament\Helpers\User\UserHelper; use Filament\Resources\Resource; class UserResource extends Resource { public static function form(Form $form): Form { return $form->schema( UserHelper::formFields() ); } public static function table(Table $table): Table { return $table->columns( UserHelper::tableColumns() ); } }
How It Works
The package organizes the generated code into a helper class and two traits:
- Helper Class: Combines and exposes reusable methods for form fields and table columns.
- Traits: Separately define reusable form fields and table columns.
Generated Helper Example
For the User model:
<?php namespace App\Filament\Helpers\User; use App\Filament\Helpers\User\Traits\UserFormFields; use App\Filament\Helpers\User\Traits\UserTableColumns; class UserHelper { use UserFormFields, UserTableColumns; public static function formFields(): array { return [ static::nameField(), static::emailField(), static::passwordField(), ]; } public static function tableColumns(): array { return [ static::nameColumn(), static::emailColumn(), static::createdAtColumn(), ]; } }
Benefits
1. Single Source of Truth Define your form fields and table columns once. Use them across:
- Resources
- Relation Managers
- Table widgets
- Select Forms (
createOptionForm)
2. Ease of Maintenance
- Make a change in the generated traits, and it’s reflected everywhere the helper is used.
3. Consistency
- Ensure consistent form and table structures throughout your project.
Practical Example: Reusing a Form Across Contexts
Imagine you have a form in your UserResource, and you want to reuse it in:
- A relation manager (e.g., assigning roles to users).
- A widget (e.g., creating a quick form for new users).
Instead of copying the same schema to multiple places:
return $form->schema([ TextInput::make('name')->required(), TextInput::make('email')->required(), Password::make('password')->required(), ]);
You can simply call:
return $form->schema(UserHelper::formFields());
Now, if you need to update the form (e.g., add a date_of_birth field), you update it in one place—the UserFormFields trait.
Conclusion
This package is not just a tool—it’s a best practice for managing reusable forms and tables in Filament projects. By centralizing your form and table logic, you save time, reduce redundancy, and ensure consistency.
Install it today and streamline your development workflow! 🎉
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.
a909m/filament-generate-helpers 适用场景与选型建议
a909m/filament-generate-helpers 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 113 次下载、GitHub Stars 达 24, 最近一次更新时间为 2025 年 01 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「laravel」 「A909M」 「filament-generate-helpers」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 a909m/filament-generate-helpers 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 a909m/filament-generate-helpers 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 a909m/filament-generate-helpers 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Filament StateFusion is a powerful FilamentPHP plugin that seamlessly integrates Spatie Laravel Model States into the Filament admin panel. This package provides an intuitive way to manage model states, transitions, and filtering within Filament, enhancing the user experience and developer productiv
Alfabank REST API integration
Laravel package for Accurate Online API integration.
Shared RCX Laravel DataTables UI and configuration helpers.
Boot a Laravel project on any machine with one command: app:serve installs missing tools (PHP, Node, Composer, Herd, Docker), creates .env, sets up the database, runs migrations, builds assets, starts a queue worker and serves via Herd, Sail or artisan serve; app:down cleanly stops everything it sta
Branded, diagnostic error pages (500, 403, 404, 419, 503) for Filament — native Filament UI, dark mode and translations out of the box.
统计信息
- 总下载量: 113
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 25
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-01-06