coolsam / modules
使用 nwidart/laravel-modules 将您的 Filament 代码组织成模块
Requires
- php: ^8.1|^8.2|^8.3
- filament/filament: ^3.0
- nwidart/laravel-modules: ^11.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^8.1
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-08-26 12:11:26 UTC
README
注意:本文档适用于本包的 4.x 版本,仅支持 Laravel 11 和 nwidart/laravel-modules ^11。如果您使用的是 Laravel 10,请参考3.x 版本文档。
此包将模块的力量带给 Laravel Filament。它允许您将 filament 代码组织成完全独立的模块,这些模块可以轻松地在多个项目中共享和复用。使用此包,您可以将每个模块转换为具有自己资源、页面、小部件、组件等功能的完整 Filament 插件。更重要的是,您甚至不需要在 Filament 主面板中注册每个插件。您只需在面板中注册 ModulesPlugin
,它就会为您处理其余部分。
此包只是 nwidart/laravel-modules 包的一个包装,使其与 Laravel Filament 一起工作。
功能
- 一个准备您的模块用于 Filament 的命令
- 一个在您的模块中创建 Filament 集群的命令
- 一个在您的模块中创建额外的 Filament 插件的命令
- 一个在您的模块中创建新的 Filament 资源的命令
- 一个在您的模块中创建新的 Filament 页面的命令
- 一个在您的模块中创建新的 Filament 小部件的命令
- 将您的管理面板组织成集群,每个支持的模块一个。
要求
本包的 v4.x 版本需要以下依赖项
- Laravel 11.x 或更高版本
- Filament 3.x 或更高版本
- PHP 8.2 或更高版本
- nwidart/laravel-modules 11.x
如果您使用的是 Laravel 10,请使用3.x 版本。
安装
您可以通过 composer 安装此包
composer require coolsam/modules:^4
这将自动安装 nwidart/laravel-modules: ^11
。确保您阅读了文档,了解如何使用包并正确配置它,然后再继续。
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="modules-config"
或者,只需运行安装命令并按照提示操作
php artisan modules:install
配置
发布配置文件后,您可以根据需要配置此包。配置文件位于 config/filament-modules.php
。您可以在配置文件中调整以下设置
- auto-register-plugins:如果设置为 true,则包将自动注册模块中的所有插件。否则,您将需要手动在 Filament 面板中注册每个插件。
- clusters.enabled:如果设置为 true,则在
module:filament:install
命令期间在每个模块中创建一个集群,该模块的所有 filament 文件可能都位于该集群中。否则,filament 文件将位于 Filament/Resources、Filament/Pages、Filament/Widgets 等位置。 - clusters.use-top-navigation:如果设置为 true,则将使用顶部导航在集群之间导航,而实际链接将作为侧边子导航加载。在我看来,这提高了用户体验。否则,包将遵守您在面板中设置的配置。
用法
注册插件
本软件包附带一个ModulesPlugin
,您可以在您的 Filament 面板中进行注册。此插件将自动加载应用程序中的所有模块,并将它们注册为 Filament 插件。为了实现这一点,您需要在所选面板(例如管理面板)中注册ModulesPlugin
,如下所示
// e.g. in App\Providers\Filament\AdminPanelProvider.php use Coolsam\Modules\ModulesPlugin; public function panel(Panel $panel): Panel { return $panel ... ->plugin(ModulesPlugin::make()); }
就这样!现在您已准备好开始在您选择的模块中创建一些 filament 代码!
在模块中安装 Filament
如果您还没有模块,可以使用module:make
命令生成一个,如下所示
php artisan module:make MyModule
接下来,运行module:filament:install
命令以在模块中生成必要的 Filament 文件和目录
php artisan module:filament:install MyModule
这将交互式地引导您是否希望将代码组织成簇,以及是否希望创建默认簇。安装完成后,您的模块中将具有以下结构
- 模块
- MyModule
- app
- Filament
- 簇
- MyModule
- 页面
- 资源
- 小部件
- MyModule.php
- MyModule
- 页面
- 资源
- 小部件
- MyModulePlugin.php
- 簇
- Filament
- app
- MyModule
如您所见,生成了两个主要文件:插件类和可选的簇类。生成后,您可以根据需要对这些类进行任何修改。
除非配置设置有其他要求,否则插件将自动加载。因此,它也将自动加载所有其簇。
您的模块现在已准备好在 Filament 面板中使用。在开发过程中,使用以下命令生成模块中的新资源、页面、小部件和簇
创建新的资源
php artisan module:make:filament-resource
按照交互式提示在模块中创建新的资源。
创建新的页面
php artisan module:make:filament-page
按照交互式提示在模块中创建新的页面。
###创建新的小部件
php artisan module:make:filament-widget
按照交互式提示在模块中创建新的小部件。
创建新的簇
php artisan module:make:filament-cluster
按照交互式提示在模块中创建新的簇。
创建新的插件
php artisan module:make:filament-plugin
按照交互式提示在模块中创建新的插件。
创建新的 Filament 主题
php artisan module:make:filament-theme
按照提示和说明在模块中创建新的 Filament 主题,并将其注册到面板中。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
有关如何报告安全漏洞的详细信息,请参阅我们的安全策略。
致谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅许可文件。