Démarrage rapide
PHP
use Storh\DocStore;
use Storh\Queue;
use Storh\RecordQuery;
use Storh\SegmentedLog;
use Storh\StorageRoot;
$root = StorageRoot::resolve(__DIR__ . '/var/storh', 'demo');
$docs = new DocStore($root, 'pages');
$home = $docs->put([
'kind' => 'page',
'title' => 'Home',
]);
$loaded = $docs->get($home->id());
$log = new SegmentedLog($root, 'events');
$log->put([
'type' => 'page.saved',
'pageId' => $home->id(),
]);
foreach ($log->stream(RecordQuery::all()->after($home->id())->limit(50)) as $record) {
// Process records lazily.
}
$queue = new Queue($root, 'jobs');
$jobId = $queue->enqueue(['task' => 'render', 'pageId' => $home->id()]);
$job = $queue->claim();
if (null !== $job) {
$queue->complete($job->id());
}
Les trois moteurs stockent les tableaux comme données utiles des enregistrements et renvoient des objets StorageRecord avec des accesseurs id() et data().
Les deux magasins proposent aussi un constructeur de requêtes fluide :
PHP
$pages = $docs
->query()
->where('kind')->eq('page')
->orderBy('title')
->limit(20)
->get();
Pour continuer :
- Choisir un moteur pour déterminer quel magasin convient à quelle charge de travail
- Index avant de filtrer des collections de plus de quelques milliers d’enregistrements
- SQL Mirror pour les jointures, la recherche et la création de rapports dans SQL