tp6.1+已移除think-filesystem内置依赖,必须手动安装topthink/think-filesystem:^1.0.1兼容包;旧版包不兼容,且需确保autoload映射、facade注册与驱动配置完整。

直接结论:TP6.1+ 已移除 think-filesystem 内置依赖,必须手动安装兼容包,且不能用旧版 topthink/think-filesystem。
为什么升级后突然报 Class 'thinkacadeFilesystem' not found
TP6.1.0 起官方明确移除了对 think-filesystem 的核心依赖——不是漏装、不是路径错,是框架主动“砍掉”了它。你升级前能用,是因为旧版(如 6.0.x)自带;升级后没自动装新替代品,Filesystem facade 就彻底不可用了。
常见触发场景:
- 执行文件上传、
Filesystem::disk('public')->put(...)等操作时直接 fatal error - 某些插件或自定义命令里调用了
thinkacadeFilesystem,但没做版本适配 - 从 TP5 或 TP6.0 直接
composer update升级到 6.1+,未检查变更日志
正确安装替代方案:用 league/flysystem + think-filesystem 1.0.1
官方推荐路径是引入 league/flysystem 生态,再通过 topthink/think-filesystem 1.0.1 做适配桥接。这个版本专为 TP6.1+ 编译,不带旧版安全漏洞。
实操步骤:
- 在项目根目录(含
composer.json和vendor/)运行:composer require topthink/think-filesystem:^1.0.1 - 确认
vendor/topthink/think-filesystem目录存在,且composer.json的require段新增了"topthink/think-filesystem": "^1.0.1" - 删掉
composer.lock(可选但推荐),再执行composer install --no-dev,确保 autoload 映射刷新 - 检查
vendor/composer/autoload_psr4.php中是否包含"think\filesystem\": ["vendor/topthink/think-filesystem/src/"]
别踩这些坑
容易误操作导致白忙活:
- 执行
composer require topthink/think-filesystem不带版本号 → 默认拉取 v2+,与 TP6.1 不兼容 - 在
vendor/topthink/thinkphp目录下装包 → 装进框架源码,不影响你的项目 - 只改
composer.json手动加行但不跑composer dump-autoload -o→ PSR-4 映射没更新,类还是找不到 - 以为装完就能用,结果控制器里还写着
use thinkFilesystem;→ 正确命名空间是use thinkacadeFilesystem;(注意facade)
验证是否真正生效
写一行最简测试代码,放在任意可执行上下文(如命令行、路由闭包):
dd(Filesystem::disk('public')->exists('test.txt'));
如果返回 false 或 true(不是报错),说明已加载成功。若仍报错,请立刻检查:public/index.php 是否引入了 vendor/autoload.php,以及 config/filesystem.php 中的 default 驱动是否存在配置项。
真正的难点不在安装命令,而在于确认整个加载链路——入口引入、Composer 映射、Facade 注册、驱动配置,四者缺一不可。任何一个环节断开,都会表现为“类找不到”。











