plana23 / modules
使用nwidart/laravel-modules将您的Plan A代码组织成模块
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
README
注意:本文档适用于该包的1.x版本,仅支持Plan A v1.x以及
此包将模块的力量带给Laravel Plan A。它允许您将Plana A代码组织成完全独立的模块,这些模块可以轻松地在多个项目中共享和重用。使用此包,您可以将每个模块转换为具有自己资源、页面、小部件、组件等功能的完全功能的Plana A插件。更重要的是,您甚至不需要在每个主Plana A面板中注册这些插件。您需要做的就是注册面板中的ModulesPlugin
,然后它将为您处理其余的事情。
这个包简单地说是一个nwidart/laravel-modules包的包装,使其与Laravel Plana A兼容。
特性
- 一个用于为Plana A准备模块的命令
- 一个用于在您的模块中创建Plana A集群的命令
- 一个用于在您的模块中创建额外的Plana A插件的命令
- 一个用于在您的模块中创建新的Plana A资源的命令
- 一个用于在您的模块中创建新的Plana A页面的命令
- 一个用于在您的模块中创建新的Plana A小部件的命令
- 将您的管理面板组织成集群,每个支持模块一个。
要求
此包的v4.x版本需要以下依赖项
- Laravel 11.x或更高版本
- Plana A 1.x或更高版本
- PHP 8.2或更高版本
- nwidart/laravel-modules 11.x
如果您正在使用Laravel 10,请使用版本 3.x。
安装
您可以通过composer安装此包
composer require plana23/modules
这将自动安装nwidart/laravel-modules: ^11
。在继续之前,请确保您已阅读文档,了解如何使用该包以及如何正确配置它。
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="modules-config"
或者,只需运行安装命令并按照提示操作
php artisan modules:install
配置
发布配置文件后,您可以根据自己的喜好配置该包。配置文件位于config/filament-modules.php
。以下内容可以在配置文件中调整
- auto-register-plugins:如果设置为true,则该包将自动注册模块中的所有插件。否则,您需要在Plana A面板中手动注册每个插件。
- clusters.enabled:如果设置为true,则在执行
module:Plana:install
命令期间将在每个模块中创建一个集群,并且该模块的所有Plana A文件可能都位于该集群中。否则,Plana A文件将位于Filament/Resources、Filament/Pages、Filament/Widgets等。 - clusters.use-top-navigation:如果设置为true,则使用顶部导航在集群之间导航,实际链接将作为侧边子导航加载。在我看来,这提高了用户体验。否则,该包将遵循您在面板中设置的配置。
用法
注册插件
该软件包包含一个ModulesPlugin
,您可以在您的 Filament 面板中注册它。此插件将自动加载您应用程序中的所有模块并将它们注册为 Filament 插件。为了实现这一点,您需要将ModulesPlugin
注册到您选择的面板中(例如,管理面板)如下所示:
// e.g. in App\Providers\Filament\AdminPanelProvider.php use Plana23\Modules\ModulesPlugin; public function panel(Panel $panel): Panel { return $panel ... ->plugin(ModulesPlugin::make()); }
就这样!现在您已经准备好开始在您选择的模块中创建一些 Filament 代码了!
在模块中安装 Plana A
如果您还没有模块,可以使用module:make
命令生成一个,如下所示:
php artisan module:make MyModule
接下来,运行module:Plana:install
命令,在您的模块中生成必要的 Plan a 文件和目录
php artisan module:Plana:install MyModule
这将引导您交互式地决定是否要组织您的代码在簇中,以及是否要创建一个默认簇。安装完成后,您模块中的结构如下:
- 模块
- MyModule
- app
- Filament
- 簇
- MyModule
- 页面
- 资源
- 小部件
- MyModule.php
- MyModule
- 页面
- 资源
- 小部件
- MyModulePlugin.php
- 簇
- Filament
- app
- MyModule
如您所见,生成了两个主要文件:插件类和可选的簇类。生成后,您可以自由地对这些类进行任何修改,以满足您的需求。
除非配置了其他设置,否则插件将自动加载。因此,它也会自动加载其所有簇。
您的模块现在已准备好在 Filament 面板中使用。在开发过程中,请使用以下命令在模块中生成新的资源、页面、小部件和簇:
创建新的资源
php artisan module:make:Plana-resource
按照交互式提示在您的模块中创建一个新的资源。
创建新的页面
php artisan module:make:Plana-page
按照交互式提示在您的模块中创建一个新的页面。
创建新的小部件
php artisan module:make:Plana-widget
按照交互式提示在您的模块中创建一个新的小部件。
创建新的簇
php artisan module:make:Plana-cluster
按照交互式提示在您的模块中创建一个新的簇。
创建新的插件
php artisan module:make:Plana-plugin
按照交互式提示在您的模块中创建一个新的插件。
创建新的 Plana 主题
php artisan module:make:Plana-theme
按照提示和说明在您的模块中创建一个新的 Plana 主题并将其注册到面板。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
请参阅我们的安全策略以了解如何报告安全漏洞。
鸣谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅许可证文件。