composer init 只生成 composer.json,不创建目录结构、不配 autoload、不安装依赖;构建完整框架结构须用 composer create-project 拉取模板或手动建目录+配置 PSR-4+dump-autoload。

composer init 不负责设置框架结构,它只生成 composer.json;真正构建框架结构得靠 composer create-project 或手动搭建目录 + 配置 autoload。
composer init 为什么不能建框架结构
它只是个 JSON 配置生成器,运行完只有 composer.json,没有 src/、tests/、public/index.php,也不创建 vendor/ 目录。很多人 init 后直接写类、require 'vendor/autoload.php',结果报 Class not found——因为连 autoload 都没配,更别说框架入口和路由了。
-
composer init不扫描文件、不创建目录、不写任何 PHP 代码 - 填错
name(比如漏 vendor 段)会导致后续 PSR-4 映射失败或 Packagist 发布被拒 - 交互中选 “yes” 配 autoload,它只支持
classmap,不支持psr-4;想用命名空间自动加载必须手动改composer.json - 即使你填了
"require": {"php": "^8.1"},也不会检查当前环境是否真有 PHP 8.1——它不管运行时兼容性
真正能搭出框架结构的两种方式
要得到带标准目录、自动加载、入口文件的结构,只有两个可靠路径:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer create-project laravel/laravel my-app:拉取完整模板,含app/、config/、routes/、public/和预配的 PSR-4("App\": "app/") - 手动初始化后补全:
mkdir -p src public tests→ 在composer.json加"autoload": {"psr-4": {"App\": "src/"}}→ 运行composer dump-autoload→ 手写public/index.php并 requirevendor/autoload.php - 别用
composer create-project composer/composer试图“初始化空框架”——它拉的是 Composer 自身源码,不是脚手架
autoload 配错的典型表现和修复
框架结构有了,但类还是加载不了?大概率是 autoload 写崩了。常见症状包括:Class AppHttpController not found、composer dump-autoload 没反应、vendor/autoload.php 存在但 new 类失败。
- 命名空间末尾反斜杠必须是双反斜杠:
"App\": "src/",写成"App": "src/"或"App": "src/"都会失效 - 路径必须是相对项目根目录的,
"src/"对,./src/或src(无斜杠)都不认 - 改完
composer.json后必须跑composer dump-autoload,光install不触发 autoload 重建 - 如果类文件在
lib/MyClass.php且命名空间是MyLib,autoload 应写"MyLib\": "lib/",不是"MyLib\": "lib/MyClass.php"
框架结构不是配置出来的,是目录 + 命名空间 + autoload 映射三者对齐的结果。init 只管其中一环,剩下两环得自己动手对齐,漏一个就加载失败。

















