nano-boot / nanoadmin
Nano Admin 后台管理系统核心插件,基于 Workerman/Webman
v2.0.2
2026-07-10 09:08 UTC
Requires
- php: >=8.1
- ext-json: *
- ext-pdo: *
- ext-redis: *
- alibabacloud/dypnsapi-20170525: 2.0.0
- firebase/php-jwt: ^6.11
- illuminate/events: ^12.53
- illuminate/pagination: ^12.22
- php-di/php-di: ^7.1
- symfony/var-dumper: ^7.3
- topthink/think-validate: ^3.0
- vlucas/phpdotenv: ^5.6
- w7corp/easywechat: ^6.19
- webman-tech/crontab-task: ^5.0
- webman-tech/laravel-validation: ^12.0
- webman/console: ^2.1
- webman/database: ^2.1
- webman/redis: ^2.1
- webman/think-cache: ^2.1
- webman/validation: ^2.2
- zircote/swagger-php: ^4.8
- zoujingli/ip2region: ^3.0
README
基于 Workerman/Webman 的后台管理系统核心插件。
安装
composer require nano-boot/nanoadmin
目录结构
本包结构包内 src/plugin/nanoadmin/ 镜像"装到主项目后的样子",由 src/Install.php 用 copy_dir 落地。
nanoadmin/ # 本仓库根 = 包根
├── README.md
├── composer.json # 单 PSR-4: Webman\nanoadmin\ => src/
├── .gitignore
└── src/
├── Install.php # webman 插件入口(命名空间 Webman\nanoadmin)
└── plugin/
└── nanoadmin/ # 镜像"安装到主项目后的样子"
├── app/ # 业务核心
│ ├── common/ # 公共类(R、ApiException、Code、JwtUtil 等)
│ ├── controller/ # 控制器
│ ├── service/ # 服务层
│ ├── model/ # 数据模型
│ ├── validator/ # 验证器
│ ├── middleware/ # 中间件
│ ├── schema/ # OpenAPI Schema
│ ├── attribute/ # 注解属性
│ ├── library/ # 公共库(swagger、annotation)
│ ├── route/ # 路由
│ ├── command/ # 自定义命令
│ ├── crontab/ # 定时任务
│ ├── view/ # 视图
│ └── functions.php # 公共函数(autoload files 自动加载)
├── config/ # 插件配置
├── api/ # 业务 API 辅助类(如 Webman\nanoadmin\api\Install)
├── sql/ # SQL 脚本(install.sql / uninstall.sql / menu_init.sql)
└── public/ # 主项目 public/ 下要暴露的静态资源
开发
# 安装依赖 composer install # 运行测试 composer test
依赖
- PHP >= 8.1
- ext-pdo
- ext-json
- illuminate/database ^10.0|^11.0
- firebase/php-jwt ^6.11
升级
本插件遵循 SemVer 语义化版本。每次代码更新都会打新的 git tag,Packagist 不会自动跟随 main 分支。
# 查看已安装版本 composer show nano-boot/nanoadmin # 升级到最新版本 composer update nano-boot/nanoadmin # 升级到指定版本 composer require nano-boot/nanoadmin:^1.0 # 锁定到精确版本(避免自动升级) composer require nano-boot/nanoadmin:1.0.1
版本号含义:
1.0.1→ 1.0.1:补丁版本,bug 修复,完全兼容1.1.0→ 次版本,新增功能,向后兼容2.0.0→ 主版本,可能有破坏性变更,升级前必看 CHANGELOG
版本管理
- 本项目版本号与 git tag 严格绑定
- tag 不可变,新代码必须通过新 tag 发布
- 不建议强制覆盖已发布的 tag
作为 webman 插件安装
本仓库同时也是一个 webman 插件包(type: webman-plugin)。当其他 webman 主项目执行 composer require nano-boot/nanoadmin 时:
- 主项目 composer.json 的
post-package-install/update触发support\\Plugin::install - webman 框架通过 psr-4 autoload 找到
Webman\nanoadmin\Install(识别条件:WEBMAN_PLUGIN = true) - Install::installByRelation() 把
src/plugin/nanoadmin/复制到主项目plugin/nanoadmin/ - 复制使用 webman 的
copy_dir(),默认不覆盖已有文件,用户本地修改的配置会保留 composer remove nano-boot/nanoadmin时Install::uninstall()会删除主项目plugin/nanoadmin/
主项目最低配置要求:
{
"scripts": {
"post-package-install": ["support\\Plugin::install"],
"post-package-update": ["support\\Plugin::install"],
"pre-package-uninstall": ["support\\Plugin::uninstall"]
},
"autoload": {
"psr-4": {
"plugin\\": "./plugin"
}
}
}
命名空间约定
| 命名空间 | 包内路径 | 用途 |
|---|---|---|
Webman\nanoadmin\ |
src/ |
仅 Install.php(webman 插件入口) |
Webman\nanoadmin\app\ |
src/plugin/nanoadmin/app/ |
业务代码(控制器、服务、模型、验证器、中间件、Schema 等) |
Webman\nanoadmin\api\ |
src/plugin/nanoadmin/api/ |
业务 API 辅助类 |
单一 PSR-4 入口:
"autoload": { "psr-4": { "Webman\\nanoadmin\\": "src/" }, "files": [ "src/plugin/nanoadmin/app/functions.php" ] }