Storage

Inject a storage disk instance

Description: Injects a specific storage disk instance by name.

Namespace: Illuminate\Container\Attributes\Storage

Usage

use Illuminate\Container\Attributes\Storage;
use Illuminate\Contracts\Filesystem\Filesystem;

class AvatarService
{
    public function __construct(
        #[Storage('s3')] private readonly Filesystem $disk
    ) {}

    public function upload(string $path, mixed $contents): void
    {
        $this->disk->put($path, $contents);
    }
}

Enum values are also supported:

use App\Enums\StorageDisk;

#[Storage(StorageDisk::S3)] private readonly Filesystem $disk