
# Instal

```bash
composer require storh/storh
```

## Persyaratan

- PHP 8.2 atau lebih baru
- `ext-json`
- sistem file lokal atau terpasang dengan semantik penggantian nama atomik di dalam direktori (semua disk lokal biasa memenuhi syarat)

storh tidak memiliki dependensi runtime Composer. Dua ekstensi membuka fitur opsional jika tersedia: `ext-pdo` atau `ext-mysqli` untuk mirror [SQL](https://storh.inline0.dev/id/docs/sql-mirror), dan `ext-apcu` untuk backend bersama `Cache::apcu()`, yang tidak menyimpan cache jika APCu tidak tersedia.

## Pilih root penyimpanan

Gunakan direktori yang dapat dibuat, dibaca, ditulisi, digunakan untuk mengganti nama, dan dihapus oleh proses PHP Anda:

```php
use Storh\StorageRoot;

$root = StorageRoot::resolve(__DIR__ . '/var/storage', 'app');
```

`StorageRoot` hanya menormalisasi jalur yang diberikan dan membersihkan namespace menjadi nama direktori yang aman. Komponen ini tidak memeriksa aplikasi host, membaca konstanta global, atau memerlukan adapter framework. Mesin membuat direktori koleksinya di bawah root saat pertama kali digunakan.

## Pastikan semuanya berfungsi

```php
$docs = new Storh\DocStore($root, 'smoke');
$record = $docs->put(['ok' => true]);

var_dump($docs->get($record->id())?->data()); // ['ok' => true]
```

Lanjutkan ke [Mulai Cepat](https://storh.inline0.dev/id/docs/quick-start) atau pilih mesin di [Memilih mesin](https://storh.inline0.dev/id/docs/engines#choosing-an-engine).
