PHPackages                             moquyun/laravel-module - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. moquyun/laravel-module

ActiveLibrary

moquyun/laravel-module
======================

laravel modules

10PHP

Since Oct 18Pushed 7y agoCompare

[ Source](https://github.com/moquyun/laravel-module)[ Packagist](https://packagist.org/packages/moquyun/laravel-module)[ RSS](/packages/moquyun-laravel-module/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

组件介绍
----

[](#组件介绍)

通过使用模块来管理大型Laravel项目，模块就像一个laravel包非常方便的进行添加或移除。

模块是在 [nwidart.com/laravel-modules](https://nwidart.com/laravel-modules/v3/advanced-tools/artisan-commands) 和 [laravel-permission](https://github.com/spatie/laravel-permission#installation) 组件基础上扩展了一些功能，所以需要先安装这两个组件。

> laravel-modules 和 laravel-permission 组件的功能都可以正常使用

安装组件
----

[](#安装组件)

```
composer require moquyun/laravel-module

php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"

php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"

php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"

php artisan vendor:publish --provider="moquyun\Module\LaravelServiceProvider"

php artisan migrate

```

配置 composer.json 设置自动加载目录

```
{
  "autoload": {
    "psr-4": {
      "App\\": "app/",
      "Modules\\": "Modules/"
    }
  }
}

```

创建模块
----

[](#创建模块)

下面的命令是安装 `Admin` 模块

```
php artisan mq:module Admin

```

创建模块会同时执行以下操作：

- 生成 `menus.php` 配置文件
- 生成 `permission.php` 权限文件

模块配置
----

[](#模块配置)

新建模块时系统会自动创建配置，一般情况下不需要执行以下命令生成配置文件（除组件添加新配置功能外）

```
php artisan mq:config Admin

```

**文件说明**

- config——基础配置，用于配置模块中文描述等信息
- permission.php——权限设置
- menus.php——后台管理菜单

**获取配置**

下面是获取 Admin/config/config.php 文件中的name值，支持 `.` 从深度嵌套的数组中检索值。

```
\HDModule::config('admin.config.name')

```

**保存配置**

```
function saveConfig(array $data = [], $name = 'config')

```

- $data——配置数据
- $name——配置文件

后台菜单
----

[](#后台菜单)

系统会根据模块配置文件 `menus.php` 生成后台菜单项

当 menus.php 文件不存在时，执行 `php artisan mq:config Admin` 系统会为模块 Admin 创建菜单。

**获取菜单**

获取系统可使用的所有菜单，以集合形式返回数据。可用于后台显示菜单列表。

```
\MQModule::getMenus()

```

权限管理
----

[](#权限管理)

首先需要安装 [laravel-permission](https://github.com/spatie/laravel-permission#installation) 组件，安装方式在上面已经介绍。

### 创建权限配置

[](#创建权限配置)

系统根据 `Admin` 模块配置文件 `permission.php` 重新生成权限，执行以下命令会创建权限配置文件。

```
php artisan mq:permission Admin

```

不指定模块时生成所有模块的权限表

```
php artisan mq:permission

```

> 文件存在时不会覆盖

生成的配置文件结构如下：

```
