Search by

zhongchuanhao / ex-webman-admin

zchzwj

Ex-Admin for webman 2.x:基于 Ant Design of Vue + webman 的后台系统构建工具(原 rockys/ex-admin 停更后的 PHP 8.4 + webman 2.2 适配版)

Package info

gitee.com/zhong-chuanhao/ex-webman-admin.git

pkg:composer/zhongchuanhao/ex-webman-admin

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

v2.0.9 2026-10-14 11:57 UTC

This package is not auto-updated.

Last update: 2026-10-15 02:18:04 UTC


README

Ex-Admin for webman —— 基于 Ant Design of Vue + webman 的后台系统构建工具,只用 PHP 代码即可构建功能完善的后台系统。

本项目是原作者停止维护的 rockys/ex-admin-ui + rockys/ex-admin-webman 的适配续命版,合并为单个 composer 包,目标环境 PHP 8.4 + webman 2.2 + workerman 5.1。

为什么需要这个包

问题说明
上游停更rockys/ex-admin-webman 停在 1.0.2(2023-01-02)
依赖冲突上游锁死 psr/container ^1、league/flysystem ^1\|^2,与 webman 2.x 要求的 psr/container ^2 冲突
Symfony 7Request::getContentType() 等 API 已被移除
PHP 8.4闭包反射名由 {closure} 变为 {closure:file:line};隐式可空参数弃用
插件市场admin:install 原依赖 https://ex-admin.idtime.cn 下载插件,现已内置到包内,离线可用

兼容矩阵

组件版本
PHP>= 8.1(已在 8.4.16 验证)
webman-framework^2.1(已在 2.2.1 验证)
workerman^5.1
league/flysystem^3
Symfony 组件^6 || ^7
Illuminate 组件^10 || ^11 || ^12

安装

composer require zhongchuanhao/ex-webman-admin

唯一需要你做的事:填 .env

composer require 时会自动完成两件事,你不需要手改任何 config 文件:

  • 把 webman/database 生成的 config/database.php 占位值(your_database / your_username / your_password)改成读取 .env
  • 项目根目录没有 .env 时,自动从包内的 .env.example 生成一份

所以只需要在 .env 里填数据库信息:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database
DB_USERNAME=your_user
DB_PASSWORD=your_password

已填真实连接信息的 config/database.php 不会被改动(幂等)。

然后执行安装(创建 addons/webman、镜像前端资源、建表、写入管理员):

php webman admin:install --username=admin --password=admin

安装命令会先检查数据库连接;如果 .env 里的库还不存在,会自动创建(utf8mb4)。连接不通时会直接提示去 .env 里改 DB_*,不再需要动 config。

启动(Windows 用 php windows.php):

php start.php start

浏览器打开 http://127.0.0.1:8787/admin 登录。

包结构

目录说明
src/ui/ExAdmin\ui\* 渲染内核(Grid/Form/Detail/组件/插件管理),框架无关
src/webman/ExAdmin\webman\* webman 适配层(引导、请求转换、安装命令)
addons/webman/系统插件本体(管理员/菜单/角色/部门/配置等),安装时复制到项目 addons/
resources/前端构建产物,安装时镜像到 public/exadmin

适配记录(相对上游)

  1. src/ui/support/Request.php:getContentType() → headers->get('CONTENT_TYPE')
  2. src/ui/traits/CallProvide.php:兼容 PHP 8.4 闭包名 {closure:file:line},并对反射失败短路(避免热路径异常开销)
  3. src/webman/ServiceProvider.php:start(?Worker $worker) 对齐 webman 2 的 Bootstrap 接口;前端资源改为从包内 resources/ 镜像
  4. src/webman/command/AdminInstall.php:改为打包包内 addons/webman 本地安装,不再请求官方插件市场
  5. addons/webman/filesystem/*:Flysystem 3 适配器(LocalFilesystemAdapter、FilesystemAdapter 三参构造)
  6. addons/webman/ServiceProvider.php:手动绑定 Illuminate\Contracts\Validation\Factory(webman 2 不再自动引导 Laravel 服务)
  7. config/plugin/rockys/ex-admin-webman/process.php:缺少 webman/redis-queue 或 ext-redis 时不注册队列消费进程
  8. 全量修正 PHP 8.4 隐式可空参数弃用(36 处)
  9. src/ui/support/Composer.php:不再按目录层级硬猜 vendor/autoload.php,改为「已注册自动加载器 → 已包含的 vendor/autoload.php → 逐级回溯」三级查找,兼容 path 软链仓库
  10. addons/webman/helpers.php:validator() 在无 Eloquent 连接解析器时先触发 support\Db::connection() 初始化,修复 webman 2 下登录等场景的 DatabasePresenceVerifier 空指针

License

继承上游 Apache-2.0。