mycmdev/nova-modules

A Laravel Nova 工具,帮助您模块化应用程序

v1.3.4 2021-04-26 15:33 UTC

This package is auto-updated.

Last update: 2024-09-26 23:00:00 UTC


README

PHP from Packagist Packagist Packagist

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
        • 视图
      • 卡片
      • 仪表板
      • 数据库
        • 迁移
        • 种子
      • 字段
      • 过滤器
      • 透镜
      • 度量
      • 模型
      • 服务提供者
      • 资源
      • 资源工具
      • 路由
      • 工具

命令

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)。请参阅许可证文件以获取更多信息。