
# Instalacja

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

## Wymagania

- PHP 8.2 lub nowsze
- `ext-json`
- lokalny lub zamontowany system plików obsługujący semantykę atomowej zmiany nazwy w obrębie katalogu (wystarczy dowolny standardowy dysk lokalny)

storh nie ma zależności środowiska uruchomieniowego Composer. Dwa rozszerzenia odblokowują opcjonalne funkcje, jeśli są dostępne: `ext-pdo` lub `ext-mysqli` w przypadku lustrzanych kopii [SQL](https://storh.inline0.dev/pl/docs/sql-mirror) oraz `ext-apcu` w przypadku współdzielonego backendu `Cache::apcu()`, który nie przechowuje niczego w pamięci podręcznej, gdy APCu jest niedostępne.

## Wybór katalogu głównego magazynu

Użyj katalogu, w którym proces PHP może tworzyć pliki, odczytywać je, zapisywać, zmieniać ich nazwy i usuwać je:

```php
use Storh\StorageRoot;

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

`StorageRoot` jedynie normalizuje podaną ścieżkę i przekształca przestrzeń nazw w bezpieczną nazwę katalogu. Nie sprawdza aplikacji hosta, nie odczytuje stałych globalnych ani nie wymaga adaptera frameworka. Przy pierwszym użyciu silniki tworzą katalogi kolekcji w katalogu głównym.

## Sprawdź, czy działa

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

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

Przejdź do [Szybkiego startu](https://storh.inline0.dev/pl/docs/quick-start) lub wybierz silnik w [Wyborze silnika](https://storh.inline0.dev/pl/docs/engines#choosing-an-engine).
