
# Встановлення

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

## Вимоги

- PHP 8.2 або новіша
- `ext-json`
- локальна або змонтована файлова система з підтримкою атомарного перейменування в межах
  каталогу (підійде будь-який звичайний локальний диск)

storh не має залежностей Composer середовища виконання. За наявності двох розширень стають доступними необов’язкові функції: `ext-pdo` або `ext-mysqli` для дзеркальних копій [SQL](https://storh.inline0.dev/uk/docs/sql-mirror) і `ext-apcu` для спільного бекенда `Cache::apcu()`, який нічого не кешує, якщо APCu недоступний.

## Виберіть кореневий каталог сховища

Використовуйте каталог, у якому процес PHP може створювати файли, читати й записувати їх, перейменовувати в межах каталогу та
видаляти:

```php
use Storh\StorageRoot;

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

`StorageRoot` лише нормалізує переданий шлях і очищує простір імен, перетворюючи його на безпечну назву каталогу. Він не перевіряє головну програму, не читає глобальні константи й не потребує адаптера фреймворку. Під час першого використання рушії створюють каталоги колекцій у кореневому каталозі.

## Переконайтеся, що все працює

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

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

Продовжте зі сторінки [Швидкий старт](https://storh.inline0.dev/uk/docs/quick-start) або виберіть рушій у розділі
[Вибір рушія](https://storh.inline0.dev/uk/docs/engines#choosing-an-engine).
