1. Go to this page and download the library: Download webrek/saga library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
webrek / saga example snippets
use Webrek\Saga\Laravel\Facades\Saga;
use Webrek\Saga\SagaContext;
$resultado = Saga::for('checkout', ['order_id' => 42])
->step('cobrar',
fn (SagaContext $c) => $c->set('cargo', $pago->charge($c['order_id'])),
compensate: fn (SagaContext $c) => $pago->refund($c['cargo']))
->step('apartar',
fn (SagaContext $c) => $inventario->reserve($c['order_id']),
compensate: fn (SagaContext $c) => $inventario->release($c['order_id']))
->step('enviar',
fn (SagaContext $c) => $envios->create($c['order_id'])) // if this fails…
->run();
// …the inventory is released and the charge is refunded, automatically.
$resultado->isCompleted(); // false
$resultado->status; // SagaStatus::Compensated
use Webrek\Saga\{Saga, SagaRunner, SagaContext};
$saga = new Saga(new SagaRunner); // no events, no journal
$resultado = $saga->for('checkout', ['order_id' => 42])
->step('cobrar', $accion, compensate: $compensacion)
->run();