rap2hpoutre/nestor

Do task, rollback if something goes wrong. Just like database transactions.

v0.0.3 2015-10-02 15:22 UTC

This package is auto-updated.

Last update: 2024-12-05 21:17:56 UTC


README

Latest Version Software License Build Status Coverage Status Quality Score

Installation

composer require rap2hpoutre/nestor

Usage

Run some tasks. In this example, the second task fails, everything will be rolled back.

$nestor = new Nestor\Servant;

// Create 1st task
$nestor->task()
    ->up(function (){
        echo "task 1 done\n";
    })
    ->down(function () {
        echo "task 1 cancelled\n";
    });
    
// Create 2nd task (will fail)
$nestor->task()
    ->up(function ($nestor) {
        $nestor->fail();
        echo "task 2 done\n";
    })
    ->down(function () {
        echo "task 2 cancelled\n";
    });
    
// Run all tasks, rollback on fail (LIFO stack)
$nestor->run();

You should see:

task 1 done
task 2 cancelled
task 1 cancelled

Why?

Todo: Explain why.

About

Software License

Thanks to DonoSybrix. Feel free to contribute.