rap2hpoutre / nestor by rap2hpoutre

Do task, rollback if something goes wrong. Just like database transactions.
10,099
4
4
Package Data
Maintainer Username: rap2hpoutre
Maintainer Contact: raphaelht@gmail.com (rap2hpoutre)
Package Create Date: 2015-10-02
Package Last Update: 2020-09-30
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-03-26 03:03:23
Package Statistics
Total Downloads: 10,099
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 4
Total Watchers: 4
Total Forks: 0
Total Open Issues: 0

Nestor Task Servant

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.