composer install 不能搭建 demo,仅安装依赖;必须用 create-project 获取完整骨架(如 topthink/think),才能运行可访问的 demo。

直接说结论: composer install 本身不能“搭建 Demo”,它只装依赖;想跑起一个可运行的 Demo,你得先有项目骨架(源码),再用 composer install 补齐 vendor。很多人卡在这一步,是因为误把 install 当成了“创建项目”的命令。
为什么 composer install 运行后还是 404 或 “Class not found”
常见现象:执行 composer install 后,vendor/ 目录生成了,但 index.php 没有、路由不生效、类找不到——这说明你当前目录下压根没有项目源码,只有空的 composer.json。
-
composer install只读取当前目录下的composer.json和composer.lock,下载并安装声明的依赖到vendor/ - 它不会创建
public/、app/、index.php这类业务文件,那些必须由你提供或通过其他方式拉取 - 如果你刚跑完
composer init,得到的是一个空壳composer.json,此时install就是“装了个寂寞”
composer create-project 才是真正启动 Demo 的入口
要快速获得带源码 + 依赖的可运行 Demo,必须用 create-project,而不是 install。它本质是 git clone + composer install + 初始化脚本 的封装。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 正确姿势:
composer create-project topthink/think tp8-demo→ 得到完整 ThinkPHP 8 骨架,含public/index.php - 同理:
composer create-project laravel/laravel demo-app→ Laravel 官方 starter,自带artisan和密钥生成逻辑 - 注意包名必须存在且类型为
project;比如symfony/skeleton是最小化结构,没public/,需额外composer require webapp - 如果目标目录非空,会直接报错
Destination directory "xxx" is not empty.,得先手动清空或换路径
执行 composer install 前必须确认的三件事
当你已有项目源码(比如从 Git 克隆下来),准备用 install 装依赖时,别急着敲回车。
- 检查当前目录是否有
composer.json和composer.lock—— 缺一不可;没有lock文件,install会退化成update,版本可能漂移 - 确认 PHP 版本满足要求:比如 TP8 要求 PHP >= 8.1,
php -v看清楚,别让install半途失败还报错模糊 - 留意
require-dev是否被跳过:默认install会装require-dev,加--no-dev才跳过;但有些初始化命令(如php artisan key:generate)在 dev 依赖里,跳过会导致后续报错
真正容易被忽略的点是:你以为自己在“搭建 Demo”,其实是在验证一条隐式信任链——你信这个 composer.json 写对了,信它的 autoload 配置能加载到你的类,信 post-install 脚本能安静跑完。任何一个环节断掉,composer install 就只是静默地建了个 vendor 目录,别的什么也没发生。










