coolsam / modules

使用 nwidart/laravel-modules 将您的 Filament 代码组织成模块

v4.0.6 2024-04-24 16:14 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

注意:本文档适用于本包的 4.x 版本,仅支持 Laravel 11nwidart/laravel-modules ^11。如果您使用的是 Laravel 10,请参考3.x 版本文档

image

此包将模块的力量带给 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
          • 页面
          • 资源
          • 小部件
          • MyModulePlugin.php

如您所见,生成了两个主要文件:插件类和可选的簇类。生成后,您可以根据需要对这些类进行任何修改。

除非配置设置有其他要求,否则插件将自动加载。因此,它也将自动加载所有其簇。

您的模块现在已准备好在 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)。有关更多信息,请参阅许可文件