Languages

Version

Theme

面板构建器

安装

要求

运行 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-componentsphp 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 GitHub

Still need help? Join our Discord community or open a GitHub discussion

下一页
开始