
# インストール

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

## 必要条件

- PHP 8.2以降
- `ext-json`
- ディレクトリ内でアトミックな名前変更が可能なローカルまたはマウント済みのファイルシステム（一般的なローカルディスクであれば使用できます）

storhにComposerの実行時依存関係はありません。以下の拡張機能があると、オプション機能を利用できます。`ext-pdo`または`ext-mysqli`は[SQLミラー](https://storh.inline0.dev/ja/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/ja/docs/quick-start)に進むか、[エンジンの選び方](https://storh.inline0.dev/ja/docs/engines#choosing-an-engine)でエンジンを選んでください。
