
# Installation

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

## Voraussetzungen

- PHP 8.2 oder höher
- `ext-json`
- ein lokales oder eingebundenes Dateisystem mit Semantik für atomare Umbenennungen innerhalb eines Verzeichnisses (jedes gewöhnliche lokale Laufwerk ist geeignet)

storh hat keine Composer-Laufzeitabhängigkeiten. Zwei Erweiterungen schalten optionale Funktionen frei, sofern sie verfügbar sind: `ext-pdo` oder `ext-mysqli` für [SQL-Spiegel](https://storh.inline0.dev/de/docs/sql-mirror) und `ext-apcu` für das gemeinsame Backend `Cache::apcu()`, das ohne APCu nichts zwischenspeichert.

## Speicherort auswählen

Verwende ein Verzeichnis, in dem dein PHP-Prozess Verzeichnisse erstellen, lesen, schreiben, umbenennen und löschen kann:

```php
use Storh\StorageRoot;

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

`StorageRoot` normalisiert nur den angegebenen Pfad und bereinigt den Namensraum zu einem sicheren Verzeichnisnamen. Es untersucht die Hostanwendung nicht, liest keine globalen Konstanten und benötigt keinen Framework-Adapter. Beim ersten Einsatz erstellen die Engines ihre Sammlungsverzeichnisse im Stammverzeichnis.

## Funktion prüfen

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

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

Mach mit dem [Schnellstart](https://storh.inline0.dev/de/docs/quick-start) weiter oder wähle unter [Eine Engine auswählen](https://storh.inline0.dev/de/docs/engines#choosing-an-engine) eine Engine aus.
