安装
要求
运行 Filament 有一些基础要求:
- PHP 8.1+
- Laravel v10.0+
- Livewire v3.0+
Livewire v3 已于最近发布了!
Livewire 团队为使其稳定方面做得很好,不过这是对 Livewire v2 的完全重写。你可能会碰到问题,因此,我们建议在将 Filament v3 使用到生产环境之前对应用进行全面的测试。
安装
如果你是从 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 面板性能
缓存 Blade 图标
你可以考虑在本地及部署脚本中运行 php artisan icons:cache
。这是因为 Filament 使用了 Blade Icons 包,它在缓存时有更好的性能。
缓存 Filament 组件
你也可以考虑在部署脚本中运行 php artisan filament:cache-components
,特别是当你有大量组件(资源、页面、Widgets、关联管理器、自定义 Livewire 组件等)时。这将在应用的 bootstrap/cache/filamentt
目录中生成缓存文件,其中包含每个组件类型的索引。这在某些应用中可以显著提升 Filament 的性能,因为它减少了需要扫描的文件数量并且自动发现组件。
不过,如果你在本地开发应用,应该避免使用该命令,因为它在清除或者重新缓 存之前,将会阻止你发现新组件。
你可以运行 php artisan filament:clear-cached-components
在任何时候清理缓存而不重新生成缓存。
在服务器中启用 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 错误。
了解 更多用户相关信息。
缓存 Blade 图标
部署是,你可以考虑使用 php artisan icons:cache
缓存图标,Filament 使用的是 Blade Icons 包,缓存后将更具性能。不过,这非常依赖于硬件,许多服务器不需要此命令 Filament 就能顺利运行。
发布配置
你可以使用如下命令发布配置文件:
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-notifications-translations
php artisan vendor:publish --tag=filament-tables-translations
php artisan vendor:publish --tag=filament-support-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