nano-boot/nanoadmin

Nano Admin 后台管理系统核心插件,基于 Workerman/Webman

Maintainers

Package info

github.com/nano-boot/nanoadmin

Type:webman-plugin

pkg:composer/nano-boot/nanoadmin

Transparency log

Statistics

Installs: 20

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v2.0.2 2026-07-10 09:08 UTC

This package is auto-updated.

Last update: 2026-07-16 18:01:06 UTC


README

基于 Workerman/Webman 的后台管理系统核心插件。

安装

composer require nano-boot/nanoadmin

目录结构

本包结构包内 src/plugin/nanoadmin/ 镜像"装到主项目后的样子",由 src/Install.phpcopy_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 时:

  1. 主项目 composer.jsonpost-package-install/update 触发 support\\Plugin::install
  2. webman 框架通过 psr-4 autoload 找到 Webman\nanoadmin\Install(识别条件:WEBMAN_PLUGIN = true
  3. Install::installByRelation()src/plugin/nanoadmin/ 复制到主项目 plugin/nanoadmin/
  4. 复制使用 webman 的 copy_dir(),默认不覆盖已有文件,用户本地修改的配置会保留
  5. composer remove nano-boot/nanoadminInstall::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"
    ]
}