面板构建器
安装
要求
运行 Filament 有一些基础要求:
- PHP 8.1+
- Laravel v10.0+
- Livewire v3.0+
安装
如果你是从 Filament v2 升级,请查看升级向导。
安装 Filament 面板构造器,在 Laravl 项目目录下运行如下命令:
composer require filament/filament:"^3.2" -W php artisan filament:install --panels
这段命令将会创建并注册一个新的 Laravel 服务提供者,叫做 app\Providers\Filament\AdminPanelProvider
。
如果访问面板时出错,请检查该服务提供者有没有在
bootstrap/providers.php
(Laravel 11 及以上版本)或config/app.php
(Laravel 10 及以下版本) 中注册。如果没有,你应该手动添加。
创建用户
如果还没有用户,你可以使用以下命令创建新用户:
php artisan make:filament-user
访问 /admin
并登录,你现在可以开始创建自己的应用了!
不确定应该从哪里开始?请浏览开始向导,学习如何构建一个完整登录的 Filament 管理后台。
使用其他 Filament 包
Filament 面板构造器包已经预装了表单构造器、表格构造器、通知生成器、Action、信息列表及 Widget 包。因此在面板中无需再行安装就能使用。
改善 Filament 面板性能
生产环境中优化 Filament
要在生产环境中优化 Filament,你应该在部署脚本中运行如下命令:
php artisan filament:optimize
该命令将缓存 Filament 组件以及 Blade 图标,这将显著改善 Filament 面板的性能。该命令是 php artisan filament:cache-components
和 php artisan icons:cache
这两个命令的快捷方式。
要一次性清除缓存,请运行:
php artisan filament:optimize-clear
缓存 Filament 组件
如果你没有使用 filament:optimize
命令,你也可以考虑在部署脚本中运行 php artisan filament:cache-components
,特别是当你有大量组件(资源、页面、Widget、关联管理器、自定义 Livewire 组件等)时。这将在应用的 bootstrap/cache/filament
目录中生成缓存文件,其中包含每个组件类型的索引。这在某些应用中可以显著提升 Filament 的性能,因为它减少了需要扫描的文件数量并且自动发现组件。
不过,如果你在本地开发应用,应该避免使用该命令,因为它在清除或者重新缓存之前,将会阻止你发现新组件。
你可以运行 php artisan filament:clear-cached-components
在任何时候清理缓存而不重新生成缓存。
缓存 Blade 图标
如果你没有使用 filament:optimize
命令,你可以考虑在本地及部署脚本中运行 php artisan icons:cache
。这是因为 Filament 使用了 Blade Icons 包,它在缓存时有更好的性能。
在服务器中启用 OPcache
来自于 Laravel Forge 文档:
优化生产环境中的 PHP OPcache,将编译过的 PHP 代码保存在内存中是对性能的极大提升。
请使用搜索引擎去检索相关的 Opcache 安装指南。
优化 Laravel 应用
你也可以考虑在部署脚本中运行 php artisan:optimize
以优化生产环境中的应用。该命令将会缓存配置和路由。
部署到生产环境
允许用户访问面板
默认情况下,所有的 App\Models\User
在本地下都可以访问 Filament。要允许用户在生成环境中访问,你还需要采取一些额外的措施来确保只有授权的用户可以访问该应用。
<?php namespace App\Models; use Filament\Models\Contracts\FilamentUser;use Filament\Panel;use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements FilamentUser{ // ... public function canAccessPanel(Panel $panel): bool { return str_ends_with($this->email, '@yourdomain.com') && $this->hasVerifiedEmail(); }}
如果你没有完成这些步骤,当你在生产环境中试图访问应用时,会出现 403 错误。
了解更多用户相关信息。
用于生产的存储磁盘
Filament 在配置中定义了一个存储磁盘,默认为 public
。你可以设置 FILAMENT_FILESSYSTEM_DISK
环境变量来更改此设置。
public
磁盘虽然便于本地开发,但不适合生产。它不支持文件可见性设置,因此 Filament 的功能,如文件上传,将创建公开文件。在生产环境中,你需要使用具有私有访问策略的磁盘,如 s3
,以防止对上传文件的未经授权的访问。
发布配置
你可以使用如下命令发布配置文件:
php artisan vendor:publish --tag=filament-config
发布翻译文件
可以使用如下命令可以发布语言文件供翻译:
php artisan vendor:publish --tag=filament-translations
由于此包依赖于其他 Filament 包,因此你还可以使用如下命令发布语言文件:
php artisan vendor:publish --tag=filament-actions-translations php artisan vendor:publish --tag=filament-forms-translations php artisan vendor:publish --tag=filament-infolists-translations php artisan vendor:publish --tag=filament-notifications-translations php artisan vendor:publish --tag=filament-tables-translations php artisan vendor:publish --tag=filament-translations
升级
如果你是从 Filament v2 升级,请查看升级向导。
当运行 composer update
命令时,Filament 会自动升级到最新的非破坏性版本。升级完成后,应该清除所有 Laravel 缓存,并且重新发布前端资源。你可以使用 filament:upgrade
命令一次性完成这些动作,该命令会第一次运行 filament:install
添加到 composer.json
文件中:
"post-autoload-dump": [ // ... "@php artisan filament:upgrade"],
请注意 filament:upgrade
不会真正处理升级过程,因为 Composer 已经做了升级,如果你不使用 post-autoload-dump
钩子手动升级,你可以自己运行该命令:
composer update php artisan filament:upgrade
Edit on GitHubStill need help? Join our Discord community or open a GitHub discussion