-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
TP6 的时候就这么写,在 TP8 似乎不行了呢?
- 首先 app/service.php 注册服务
return [
AppService::class,
FilesystemService::class,
];
- 绑定 filesystem 自定义实现
class FilesystemService extends Service
{
public function register(): void
{
// 调试:这里触发了
// 绑定自定义的Filesystem实现
$this->app->bind('filesystem', Filesystem::class);
}
}
- 自定义实现 cos oss 等云存储
class Filesystem extends Manager
{
/**
* 驱动的命名空间
*/
protected $namespace = __NAMESPACE__ . '\\driver\\';
// Filesystem::disk('cos')->putFile('uploads', $file); 这样调用走不到这里呢
public function disk(?string $name = null): Driver
{
return $this->driver($name);
}
// 其他代码
具体问题
以前就上面这么写,使用原本的 filesystem 门面就行,现在使用thinkphhp 自己的门面不行了,使用自定义的门面可以,为什么呢,现在不能这么写了吗?使用原本的门面走不到步骤 3 的自定义实现中
// 使用默认的门面不行,使用自定义的门面可以
use think\facade\Filesystem;
class Upload extends AdminController
{
public function image(Request $request)
{
//
Filesystem::disk('cos')->putFile('uploads', $file);
}
}
Metadata
Metadata
Assignees
Labels
No labels