
# Installazione

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

## Requisiti

- PHP 8.2 o successiva
- `ext-json`
- un filesystem locale o montato con semantica di rinomina atomica all'interno di una
  directory (qualsiasi normale disco locale è sufficiente)

storh non ha dipendenze runtime Composer. Due estensioni sbloccano funzionalità opzionali quando presenti: `ext-pdo` o `ext-mysqli` per i mirror [SQL](https://storh.inline0.dev/it/docs/sql-mirror) e `ext-apcu` per il backend `Cache::apcu()` condiviso, che non memorizza nulla nella cache se APCu non è disponibile.

## Scegliere una radice di archiviazione

Usate una directory che il processo PHP possa creare, leggere, scrivere, rinominare al suo interno ed
eliminare file da:

```php
use Storh\StorageRoot;

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

`StorageRoot` normalizza solo il percorso fornito e rende il namespace un nome di directory sicuro. Non ispeziona l'applicazione host, non legge costanti globali e non richiede un adapter per framework. I motori creano le proprie directory di raccolta sotto la radice al primo utilizzo.

## Verificare che funzioni

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

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

Proseguite con [Avvio rapido](https://storh.inline0.dev/it/docs/quick-start) oppure scegliete un motore in
[Come scegliere un motore](https://storh.inline0.dev/it/docs/engines#choosing-an-engine).
