mycmdev / nova-modules
A Laravel Nova 工具,帮助您模块化应用程序
Requires
- php: >=7.3.9
Requires (Dev)
- laravel/framework: ^7.0
- laravel/nova: ^3.0
README
A Laravel Nova 工具,帮助您模块化应用程序。我们的应用程序往往增长很大,我们需要很多模型、资源、透镜、操作、迁移等。使用这个包,我们可以将 Nova 部分划分为小块(或模块)。
开始吧
要开始,您只需要安装 composer 包
composer require mycmdev/nova-modules
在我们的 composer.json 中,我们需要添加
"autoload": { "psr-4": { "NovaModules\\": "nova-modules/" } },
"nova-modules" 和 "NovaModules" 是该包的默认文件夹和默认命名空间,但您可以通过发布配置文件来更改它,使用命令
php artisan vendor:publish --tag=nova-modules
并更改它为
'path' => 'nova-modules', 'namespace' => 'NovaModules'
现在我们只需要输入以下命令
php artisan nova-modules:make {name of our module}
我们的模块就会自动创建,并包含所有其子文件夹。
目录结构
所以我们的结构将如下所示
- NovaModules
- TestModule
- 操作
- 资产
- js
- 字段
- 过滤器
- 卡片
- 资源工具
- 工具
- sass
- 视图
- js
- 卡片
- 仪表板
- 数据库
- 迁移
- 种子
- 字段
- 过滤器
- 透镜
- 度量
- 模型
- 服务提供者
- 资源
- 资源工具
- 路由
- 工具
- TestModule
命令
NovaModules 几乎为所有需要的功能都提供了一个 artisan 命令
用于创建新的操作
php artisan nova-modules:action {action-name} {module-name}
用于创建新的卡片
注意:它将在我们的资产中创建一个文件夹,并带有 Vue 文件,以便我们可以将其集成到主 JS 文件中
php artisan nova-modules:card {card-name} {module-name}
用于创建新的自定义过滤器
注意:这个也会在我们的资产中创建一个文件夹,并带有 Vue 文件
php artisan nova-modules:custom-filter {custom-filter-name} {module-name}
用于创建新的仪表板
php artisan nova-modules:dashboard {dashboard-name} {module-name}
用于创建新的字段
注意:这个将为我们 nova 应用程序中的每个视图创建 3 个不同的 Vue 文件。
php artisan nova-modules:field {field-name} {module-name}
用于创建新的过滤器
php artisan nova-modules:filter {filter-name} {module-name}
用于创建新的透镜
php artisan nova-modules:lens {lens-name} {module-name}
用于创建迁移
php artisan nova-modules:migration {migration-name} {module-name}
用于创建新的模型
php artisan nova-modules:model {model-name} {module-name}
用于创建新的分区度量
php artisan nova-modules:partition {partition-name} {module-name}
如果我们需要将其他服务提供者集成到我们的模块中
注意:您需要在主模块服务提供者中注册它。
php artisan nova-modules:provider {provider-name} {module-name}
用于创建新的资源
注意:资源默认会自动加载到您的应用程序中,并且默认情况下按模块名称分组。
php artisan nova-modules:resource {resource-name} {module-name}
用于创建新的资源工具
注意:这将创建 Vue 文件,位于您的资产文件夹中。
php artisan nova-modules:resource-tool {resource-tool-name} {module-name}
用于创建与您的模块相关联的新工具
注意:它将在您的资产文件夹中创建 Vue 文件,同时在 Assets/views 文件夹中创建 navigation.blade 文件。
我不知道是否在未来的版本中我会添加一个自动加载系统
php artisan nova-modules:tool {tool-name} {module-name}
用于创建新的趋势度量
php artisan nova-modules:trend {trend-name} {module-name}
用于创建新的值度量
php artisan nova-modules:value {value-name} {module-name}
用于创建新的策略
php artisan nova-modules:policy {policy-name} {module-name}
感谢
我想感谢 @nWidart,他通过他的优秀包 nwidart/laravel-modules 给了我关于模块化 Laravel 应用程序的想法
许可证
MIT 许可证(MIT)。请参阅许可证文件以获取更多信息。