
# Installera

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

## Krav

- PHP 8.2 eller senare
- `ext-json`
- ett lokalt eller monterat filsystem med semantik för atomärt namnbyte i en
  katalog (alla vanliga lokala diskar uppfyller detta krav)

storh har inga körningsberoenden på Composer. Två tillägg låser upp valfria
funktioner när de finns: `ext-pdo` eller `ext-mysqli` för
speglar av [SQL](https://storh.inline0.dev/sv/docs/sql-mirror) och `ext-apcu` för den delade
cachebakänden `Cache::apcu()`, som inte cachelagrar något när APCu saknas.

## Välj en lagringsrot

Använd en katalog som din PHP-process kan skapa, läsa, skriva i, byta namn i och
radera från:

```php
use Storh\StorageRoot;

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

`StorageRoot` normaliserar endast den angivna sökvägen och sanerar namnrymden
till ett säkert katalognamn. Den granskar inte värdapplikationen, läser inte
globala konstanter och kräver ingen ramverksadapter. Motorer skapar
samlingskatalogerna under roten vid första användningen.

## Kontrollera att det fungerar

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

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

Fortsätt med [Snabbstart](https://storh.inline0.dev/sv/docs/quick-start) eller välj en motor under
[Välja en motor](https://storh.inline0.dev/sv/docs/engines#choosing-an-engine).
