
# Asennus

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

## Vaatimukset

- PHP 8.2 tai uudempi
- `ext-json`
- paikallinen tai liitetty tiedostojärjestelmä, joka tukee atomista uudelleennimeämistä hakemiston sisällä (mikä tahansa tavallinen paikallinen levy käy)

storh ei vaadi Composer-ajonaikaisia riippuvuuksia. Kaksi laajennusta avaa valinnaisia ominaisuuksia, jos ne ovat käytettävissä: `ext-pdo` tai `ext-mysqli` palvelimille [SQL](https://storh.inline0.dev/fi/docs/sql-mirror) sekä `ext-apcu` jaettuja `Cache::apcu()`-taustapalveluja varten; se ei tallenna mitään välimuistiin, jos APCu ei ole käytettävissä.

## Valitse tallennuksen juurihakemisto

Käytä hakemistoa, jonka PHP-prosessi voi luoda, lukea, kirjoittaa, nimetä uudelleen sen sisällä ja poistaa tiedostoja:

```php
use Storh\StorageRoot;

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

`StorageRoot` ainoastaan normalisoi annetun polun ja puhdistaa nimiavaruuden turvalliseksi hakemiston nimeksi. Se ei tarkastele isäntäsovellusta, lue globaaleja vakioita eikä vaadi kehysadapteria. Tallennusmoottorit luovat kokoelmahakemistonsa juureen ensimmäisellä käyttökerralla.

## Tarkista toiminta

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

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

Jatka [Pika-aloituksella](https://storh.inline0.dev/fi/docs/quick-start) tai valitse tallennusmoottori kohdasta [Tallennusmoottorin valinta](https://storh.inline0.dev/fi/docs/engines#choosing-an-engine).
