
# Instalação

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

## Requisitos

- PHP 8.2 ou posterior
- `ext-json`
- um sistema de arquivos local ou montado com semântica de renomeação atômica dentro de um
diretório (qualquer disco local comum serve)

storh não tem dependências de runtime Composer. Duas extensões desbloqueiam recursos opcionais quando disponíveis: `ext-pdo` ou `ext-mysqli` para
espelhos [SQL](https://storh.inline0.dev/pt/docs/sql-mirror) e `ext-apcu` para o backend
`Cache::apcu()` compartilhado, que não armazena nada em cache quando o APCu não está disponível.

## Escolha uma raiz de armazenamento

Use um diretório que o processo PHP possa criar, ler, gravar, renomear arquivos dentro e
excluir arquivos de:

```php
use Storh\StorageRoot;

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

`StorageRoot` apenas normaliza o caminho fornecido e higieniza o namespace
para convertê-lo em um nome de diretório seguro. Não inspeciona o aplicativo host, não lê
constantes globais nem exige um adaptador de framework. Os mecanismos criam seus
diretórios de coleção sob a raiz na primeira utilização.

## Verifique se funciona

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

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

Continue com o [Início rápido](https://storh.inline0.dev/pt/docs/quick-start) ou escolha um mecanismo em
[Como escolher um mecanismo](https://storh.inline0.dev/pt/docs/engines#choosing-an-engine).
