create filesystem abstraction

This commit is contained in:
Yisroel Baum 2026-06-26 08:26:11 +03:00
parent be2c51bfb7
commit d59d444952
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
14 changed files with 44 additions and 64 deletions

View file

@ -2,11 +2,13 @@
namespace App\Shared\Files;
interface FileUploader
interface Filesystem
{
public function upload(FileToUpload $file, string $folder): string;
public function url(string $path): string;
public function delete(string $path): void;
public function read(string $path): ?string;
}

View file

@ -5,7 +5,7 @@ namespace App\Shared\Files;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
class LaravelFileUploader implements FileUploader
class LaravelFilesystem implements Filesystem
{
public function upload(FileToUpload $file, string $folder): string
{
@ -25,6 +25,15 @@ class LaravelFileUploader implements FileUploader
Storage::disk('public')->delete($path);
}
public function read(string $path): ?string
{
if (!Storage::disk('public')->exists($path)) {
return null;
}
return Storage::disk('public')->get($path);
}
private function extensionFor(FileToUpload $file): string
{
$mimeExtensions = [

View file

@ -1,17 +0,0 @@
<?php
namespace App\Shared\Files;
use Illuminate\Support\Facades\Storage;
class LaravelStoredFileReader implements StoredFileReader
{
public function read(string $path): ?string
{
if (!Storage::disk('public')->exists($path)) {
return null;
}
return Storage::disk('public')->get($path);
}
}

View file

@ -1,8 +0,0 @@
<?php
namespace App\Shared\Files;
interface StoredFileReader
{
public function read(string $path): ?string;
}