Webman 项目必须严格遵循其 Composer 使用规范:需从 GitHub Releases 下载 zip 包而非用 create-project 或 require 安装;依赖安装须加 -W 参数绕过函数限制;启动依赖 start.php 中硬编码的 require_once 而非自动加载;插件配置必须置于 config/plugin/ 对应路径下才生效。

Webman 项目里用 Composer,不是“能不能用”,而是“必须按它的方式用”——错一步,Class 'WebmanApp' not found、路由不加载、插件不生效,全是因为没踩对 Composer 的节奏。
为什么 composer create-project webman/webman 会失败或装错
官方仓库 webman/webman 是个空骨架:没有 composer.json 入口,也没有 dist 包。直接运行该命令,Composer 会报 Could not find package webman/webman,或者退而求其次拉取 dev-master 分支(不稳定、无启动逻辑、缺 autoload 配置)。
- Webman 的正式发布形态是 GitHub Releases 页面上的
webman-x.x.x.zip(不是 Source code) - 解压后目录自带完整
composer.json、start.php和autoload映射,这才是可运行的稳定环境 -
composer require webman/webman也别碰——它只是个组件库,不是框架主体,装了也没start.php可跑
安装依赖时必须加 -W 参数
Webman 默认禁用某些 PHP 函数(如 exec、shell_exec),而部分 Composer 包(比如 illuminate/database 或 pear-admin-layui)在安装过程中会触发这些函数调用,导致中断或静默失败。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 执行
composer require -W illuminate/database,-W表示忽略平台限制(即跳过函数禁用检查) - 同理,装
webman/admin插件也要用composer require -W webman/admin - 装完后务必检查
config/plugin/下是否生成对应目录,而不是只看vendor/
start.php 里的 require_once 链路不能动
Webman 启动不靠 Composer 自动加载兜底,而是靠 start.php 顶部那一串硬编码的 require_once 加载核心类和配置。一旦你移动了 vendor、改了 BASE_PATH 常量,或删了某行 require,就会立刻报 Class 'WebmanApp' not found。
- 不要手动修改
start.php中的路径逻辑,尤其注意__DIR__ . '/vendor/autoload.php'这一行是否仍指向正确位置 - 如果项目结构做了调整(比如把 Webman 放进子目录),优先同步更新
start.php里的BASE_PATH和所有require_once路径 - 验证方式很简单:删掉
vendor/autoload.php,再运行php start.php start—— 如果还跑得起来,说明它根本没走 Composer 自动加载,全靠start.php手动引
插件配置合并机制依赖 config/plugin/ 目录结构
Webman 不通过 Composer 的 autoload 加载插件逻辑,而是扫描 config/plugin/{vendor}/{name}/ 下的 app.php、route.php 等文件,自动合并进主配置。这意味着:
- 插件必须安装到
config/plugin/对应路径下,而不是只在vendor/里有代码 -
config/plugin/webman/admin/app.php会被自动读取并注入服务提供者,但如果你把它放到config/plugin/admin/就无效 - 插件自身的
composer.json里若声明了autoload,仅用于开发时 IDE 提示,运行时不生效——真正起作用的是config/plugin/下的配置文件
最常被忽略的一点:Webman 的 Composer 使用逻辑是「配置驱动」而非「类加载驱动」。你改对了 composer.json,却没让 start.php 和 config/plugin/ 跟上,那所有依赖都等于白装。

















