
# Установка

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

## Требования

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

storh не имеет зависимостей среды выполнения Composer. При наличии двух расширений становятся доступны дополнительные функции: `ext-pdo` или `ext-mysqli` для зеркал [SQL](https://storh.inline0.dev/ru/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/ru/docs/quick-start) или выберите механизм хранения в разделе [Выбор механизма хранения](https://storh.inline0.dev/ru/docs/engines#choosing-an-engine).
