先运行 composer show vendor/package-name,若报“Package not found”则未安装成功;若正常输出版本及 autoload 信息,则问题在自动加载环节,需检查 PSR-4 映射、大小写、symlink 或 OPCache。

composer require 后 Class not found 怎么快速确认是否真装上了
别急着改代码,先验证包是否真的进了项目。运行 composer show vendor/package-name(比如 composer show get-stream/stream-chat),如果报错 “Package not found”,说明根本没装成功;如果正常输出版本、描述和 autoload 字段,那问题一定出在自动加载环节。
常见误操作是用 composer install 代替 composer require:后者会写入 composer.json 并触发 autoload 更新,前者只按 composer.lock 恢复,新包不会被识别。
- 检查
vendor/目录下是否存在对应包路径(如vendor/get-stream/stream-chat) - 打开
composer.json,确认该包已出现在require区块里 - 运行
ls -la vendor/autoload.php,看文件修改时间是否晚于composer require时间
dump-autoload 不生效?重点检查这三处参数和时机
composer dump-autoload 默认只处理主 autoload 配置,很多场景它“看起来执行了”,但类依然找不到——因为没加对参数,或环境卡在旧缓存里。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 新增了测试类、Factory 或 Service Provider?必须加
--dev:composer dump-autoload --dev - 重命名/移动过类文件(比如从
app/Http/Controllers搬到app/Controllers)?要强制重建 classmap:composer dump-autoload -o - 线上部署后出问题?PHP 的 OPCache 可能缓存了旧的 autoload 映射,得清 OPCache 或重启 PHP-FPM,不能只刷页面
PSR-4 映射失败的硬性条件:路径、命名空间、大小写必须三者一致
Composer 不做任何容错匹配。哪怕 "App\": "src/" 少了一个反斜杠,或类文件名是 userservice.php 而不是 UserService.php,都会直接跳过加载,且不报错。
- 检查
composer.json中 PSR-4 前缀末尾是否有反斜杠:"App\"✅,"App"❌ - 打开
vendor/composer/autoload_psr4.php,搜索你的命名空间前缀,确认映射路径是绝对路径(如$baseDir . '/src'),再手动ls验证该路径下是否存在对应文件 - Linux/macOS 服务器上,
src/Services/UserService.php和src/services/userservice.php是两个不同路径——开发时在 Windows/macOS 能“凑合过”,一上线就崩
本地包 symlink 失效导致改了代码却没加载到
用 path 类型仓库引入本地包时,最隐蔽的问题是 symlink 没建成功。你改的是源码目录,PHP 加载的却是 vendor/ 里一份静态副本,全程静默,毫无提示。
- 运行
ls -la vendor/vendor/name(Linux/macOS)或dir vendor\vendor\name(Windows),看到->或JUNCTION才算链接成功;纯文件夹就是 fallback 到 copy 模式 - 关键配置不在主项目
composer.json,而在**本地包自己的composer.json中必须有"options": {"symlink": true}** - Windows 用户需以管理员身份运行终端;Docker 场景要加
--cap-add=SYS_ADMIN,且挂载方式必须支持符号链接(-v $(pwd)/../my-pkg:/workspace/my-pkg不行,得用绑定挂载并透传宿主机权限)

















