rap2hpoutre/nestor
Do task, rollback if something goes wrong. Just like database transactions.
10,229
4
| Install | |
|---|---|
composer require rap2hpoutre/nestor |
|
| Latest Version: | v0.0.3 |
| License: | MIT |
| Last Updated: | Sep 30, 2020 |
| Links: | GitHub · Packagist |
Maintainer: rap2hpoutre
Nestor Task Servant
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
Thanks to DonoSybrix. Feel free to contribute.
