先确认vendor/autoload.php时间戳是否更新,若未变则补运行composer dump-autoload -o --dev;再检查psr-4路径与命名空间大小写是否严格一致,并清opcache或重启php-fpm。

composer dump-autoload 之后类还是找不到,先看 autoload.php 时间戳
执行 composer dump-autoload 后类仍报错,最常被忽略的是:命令看似跑完了,但 vendor/autoload.php 文件没更新。它的时间戳比你运行命令的时间还早,说明根本没写入成功——这通常是因为之前用过 --no-autoloader 或手动改过该文件,导致 Composer 跳过了生成步骤。
- 用
ls -l vendor/autoload.php(Linux/macOS)或dir vendor\autoload.php(Windows)确认修改时间 - 如果时间没变,别信终端输出的 “Generating autoload files”,直接补上
composer dump-autoload -o - 若项目用了
autoload-dev(比如 Laravel 的测试类、Service Provider),必须加--dev:composer dump-autoload -o --dev
PSR-4 映射路径和命名空间大小写不匹配,Linux 上必崩
Composer 不做大小写容错。哪怕 "App\": "src/" 配对正确,只要类文件放在 src/services/userservice.php(小写目录+小写文件名),而类定义是 class UserService 且命名空间为 App\Services\UserService,就会找不到——因为 PSR-4 要求目录结构严格对应命名空间层级,且文件系统路径必须完全一致。
- 检查
vendor/composer/autoload_psr4.php,搜索你的命名空间前缀,确认映射路径是否为$baseDir . '/src'这类真实存在路径 - 在 Linux 下执行
find src/ -name "*UserService*",确认文件名和目录名大小写与命名空间层级完全一致 - 别把
App\Services\UserService类直接丢进src/UserService.php—— 它必须在src/Services/UserService.php
部署后 Class not found,大概率是 OPCache 没清
本地 OK、一上生产就报错,90% 是 PHP 的 OPCache 缓存了旧的 opcode,导致它还在用老的 autoload_psr4.php 内容,压根没读新生成的映射文件。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 部署脚本里不能只跑
composer install --optimize-autoloader,还得加一行清缓存:php -r "opcache_reset();" - 如果 PHP-FPM 模式下
opcache.revalidate_freq=0未设,opcache_reset()可能无效,得重启 FPM:sudo systemctl reload php*-fpm - Apache + mod_php 用户注意:重启 Apache ≠ 清 OPCache,必须单独调用
opcache_reset()或确保配置允许该函数
私有包或新 require 的包类找不到,重点查 repositories 配置是否覆盖全局源
只要项目 composer.json 里有 "repositories" 字段,Composer 就会彻底忽略 repo.packagist.org,只查你列出来的地址。如果你只配了一条 Git 私库,却没显式保留 Packagist,那所有非私库的包都会“消失”。
- 运行
composer config repositories,看输出是否包含"packagist.org": false—— 如果没有,说明 Packagist 已被静默屏蔽 - 正确写法是在
repositories数组开头加一项:{"packagist.org": false},再跟你的私库,最后补上阿里云镜像(URL 结尾必须带/) - 验证镜像是否真同步了你要的版本:
curl -s https://mirrors.aliyun.com/composer/p2/vendor/name.json | jq -r '.packages."vendor/name" | keys[]' | tail -3
真正卡住人的从来不是命令没输对,而是时间戳没变、大小写不对、OPCache 没清、或者 repositories 一配就全盘接管——这些点不逐个锤实,重装十次 vendor 都没用。










