Skip to content

文件存储 (Storage)

Anon Framework Next 底层基于 league/flysystem,提供了统一的文件存储抽象。

默认情况下,框架使用 local 驱动,文件存储在项目的 runtime/storage 目录下。

配置

推荐在 anon.config.php 中定义默认磁盘与本地磁盘路径:

php
use Anon\Core\Facade\Env;

return [
    'storage' => [
        'default' => 'local',
        'disks' => [
            'local' => [
                'root' => __DIR__ . '/runtime/storage',
                'url' => rtrim((string) Env::get('APP_URL', 'http://127.0.0.1:8000'), '/') . '/storage',
            ],
        ],
    ],
];

如果配置文件里要读取环境变量,建议和其他模块一样优先使用 Env::get(),不要在业务代码里散落直接的 getenv()

基础用法

通过 Anon\Core\Facade\Storage 门面进行文件操作:

php
use Anon\Core\Facade\Storage;

// 写入文件
Storage::put('avatars/1.jpg', $content);

// 追加内容
Storage::append('logs/user.log', 'User logged in.');

// 读取文件
$content = Storage::get('avatars/1.jpg');

// 判断文件是否存在
if (Storage::exists('avatars/1.jpg')) {
    // ...
}

// 删除文件
Storage::delete('avatars/1.jpg');

// 复制与移动文件
Storage::copy('avatars/1.jpg', 'avatars/1_backup.jpg');
Storage::move('avatars/1_backup.jpg', 'archive/1.jpg');

// 获取文件 URL
$url = Storage::url('avatars/1.jpg');