PHPackages                             molong/hyperf-modules - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. molong/hyperf-modules

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

molong/hyperf-modules
=====================

Hyperf local module discovery: aggregates module ConfigProviders, migrator/seeder paths

v0.0.2(2mo ago)025—0%MITPHPPHP &gt;=8.1

Since Apr 9Pushed 1mo agoCompare

[ Source](https://github.com/cnmolong/hyperf-modules)[ Packagist](https://packagist.org/packages/molong/hyperf-modules)[ RSS](/packages/molong-hyperf-modules/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (7)Versions (3)Used By (0)

hyperf-modules
==============

[](#hyperf-modules)

Hyperf 本地模块发现与管理工具。自动扫描 `modules/` 目录下的模块，聚合各模块的 ConfigProvider、数据库迁移路径和 Seeder 路径。

功能特性
----

[](#功能特性)

- **自动模块发现** — 扫描项目 `modules/` 目录下所有包含 `composer.json` 的子目录，按名称排序确保加载顺序一致
- **ConfigProvider 聚合** — 读取各模块 `extra.hyperf.config`，安全递归合并配置（`dependencies` 独立处理避免键覆盖）
- **迁移路径聚合** — 自动注册各模块 `databases/migrations` 目录到 Migrator
- **Seeder 路径聚合** — 自动收集各模块 `databases/seeders` 目录
- **单次扫描** — `ModuleLoader` 采用静态缓存，生命周期内仅扫描一次文件系统
- **零配置** — 只需将模块放入 `modules/` 目录即可

安装
--

[](#安装)

```
composer require molong/hyperf-modules
```

使用方法
----

[](#使用方法)

### 1. 模块目录结构

[](#1-模块目录结构)

在 Hyperf 项目根目录下创建 `modules/` 目录，每个模块一个子目录：

```
project/
├── app/
├── modules/
│   ├── user/
│   │   ├── composer.json
│   │   ├── src/
│   │   │   └── ConfigProvider.php
│   │   └── databases/
│   │       ├── migrations/
│   │       └── seeders/
│   └── order/
│       ├── composer.json
│       └── src/
│           └── ConfigProvider.php
└── composer.json

```

### 2. 模块 composer.json 示例

[](#2-模块-composerjson-示例)

```
{
    "name": "module/user",
    "autoload": {
        "psr-4": {
            "Module\\User\\": "src/"
        }
    },
    "extra": {
        "hyperf": {
            "config": "Module\\User\\ConfigProvider"
        }
    }
}
```

### 3. 配置自动生效

[](#3-配置自动生效)

本包通过 `extra.hyperf.config` 注册了自身的 ConfigProvider，Hyperf 框架启动时会自动：

1. 扫描 `modules/` 目录下所有 `composer.json`
2. 解析模块元信息（名称、命名空间、ConfigProvider）
3. 实例化并合并各模块的 ConfigProvider（`dependencies` 单独 `array_merge` 防止递归覆盖）
4. 注册所有模块的迁移和 Seeder 路径

API
---

[](#api)

### ModuleLoader

[](#moduleloader)

方法返回值说明`scan(string $basePath = '')``array`扫描模块目录，返回模块列表（已扫描则直接返回缓存）`isLoaded()``bool`是否已完成扫描`hasModule(string $name)``bool`检查模块是否存在`getModule(string $name)``?array`获取单个模块信息`getModules()``array`获取所有已扫描模块`getConfigProviders()``list`获取所有模块的 ConfigProvider FQCN`getMigrationPaths()``list`获取所有模块的迁移目录`getSeederPaths()``list`获取所有模块的 Seeder 目录`reset()``void`重置扫描状态### MigratorFactory

[](#migratorfactory)

工厂类，自动聚合主项目、本包及所有模块的迁移路径，注入到 Hyperf Migrator。仅在未扫描时触发 `scan()`。

### SeedFactory

[](#seedfactory)

通过 `SeedFactory::paths()` 获取主项目和所有模块的 Seeder 目录路径列表。

配置合并策略
------

[](#配置合并策略)

`ConfigProvider` 在合并各模块配置时：

- **通用配置**（`annotations`、`commands`、`listeners` 等）使用 `array_merge_recursive` 递归合并
- **`dependencies`** 使用 `array_merge` 独立合并，避免递归合并导致字符串键被覆盖为数组

测试
--

[](#测试)

```
composer test
```

代码分析
----

[](#代码分析)

```
composer analyse
```

环境要求
----

[](#环境要求)

- PHP &gt;= 8.1
- Hyperf ~3.1

许可证
---

[](#许可证)

MIT License

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance88

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

61d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2899891?v=4)[molong](/maintainers/molong)[@molong](https://github.com/molong)

---

Top Contributors

[![cnmolong](https://avatars.githubusercontent.com/u/192728465?v=4)](https://github.com/cnmolong "cnmolong (3 commits)")

---

Tags

phpmodulemodularhyperfmodule-loader

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/molong-hyperf-modules/health.svg)

```
[![Health](https://phpackages.com/badges/molong-hyperf-modules/health.svg)](https://phpackages.com/packages/molong-hyperf-modules)
```

###  Alternatives

[hyperf/nano

Scale Hyperf application down to a single file

43413.8k2](/packages/hyperf-nano)[hyperf/watcher

Hot reload watcher for Hyperf

19885.5k29](/packages/hyperf-watcher)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
