# ex-webman-admin **Repository Path**: zhong-chuanhao/ex-webman-admin ## Basic Information - **Project Name**: ex-webman-admin - **Description**: ex-webman-admin - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-13 - **Last Updated**: 2026-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # zhongchuanhao/ex-webman-admin 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 7 | `Request::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 | ## 安装 ```bash 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` 里填数据库信息: ```dotenv 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`、镜像前端资源、建表、写入管理员): ```bash php webman admin:install --username=admin --password=admin ``` 安装命令会先检查数据库连接;如果 `.env` 里的库还不存在,会自动创建(utf8mb4)。连接不通时会直接提示去 `.env` 里改 `DB_*`,不再需要动 `config`。 启动(Windows 用 `php windows.php`): ```bash 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。