Laravel Artifact — це легкий пакет для простого управління медіа у Laravel. Він спрощує завантаження файлів, їхнє зберігання та отримання, а також підтримує публічні/приватні диски та підписані URL-адреси.
use LaravelJutsu\Artifact\Concerns\HasArtifacts;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use HasArtifacts;
// Відношення до одного файлу
public function avatar()
{
return $this->singleArtifact('avatar');
}
// Відношення до кількох файлів
public function documents()
{
return $this->manyArtifacts('documents');
}
}
Після визначення відносин у вашій моделі завантаження та доступ до файлів стає простим завдяки API пакету. Незалежно від того, чи потрібно зберігати кілька файлів одночасно, чи тільки один, пакет пропонує зручне рішення:
// Зберегти одиночний файл (один до одного)
$artifact = $user->avatar()->store($file);
// Зберегти кілька файлів (один до багатьох)
$artifacts = $user->documents()->store(request()->file('documents'));
// Вказати диск зберігання
$artifact = $user->avatar()->store($file); // Використовує диск за замовчуванням
$artifacts = $user->documents()->store($files, 'public');
// Доступ
$avatar = $user->avatar;
$avatar->rawUrl();
$avatar->streamUrl();
$avatar->signedUrl();
$avatar->temporarySignedUrl(60);
🧑💻 Ви можете розпочати роботу з цим пакетом на GitHub: ludoguenet/laravel-artifact