1. Go to this page and download the library: Download mortenscheel/task-flow 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/ */
mortenscheel / task-flow example snippets
use Scheel\TaskFlow\Context;
use Scheel\TaskFlow\Facades\TaskFlow;
use Scheel\TaskFlow\Task;
TaskFlow::run([
Task::make('Closure', function (Context $context) {
// Do stuff
usleep(500000);
// Set context data for future tasks
$context->set('foo', true);
}),
Task::make('Conditional', function (Context $context) {
// Read context data from previous tasks
if ($context->get('foo')) {
// Skip current task, including child tasks
$context->skip();
}
}),
// Task action can be an invokable class
Task::make('Invokable', new SomeInvokable),
Task::make('Nested tasks', children: [
Task::make('Subtask 1', $this->classMethod(...)),
Task::make('Subtask 2', children: [
Task::make('Subtask 2.1', children: [
Task::make('Subtask 2.1.1', fn () => sleep(1)),
Task::make('Subtask 2.1.2', fn () => sleep(1)),
]),
Task::make('Subtask 2.2', fn () => sleep(1)),
]),
]),
Task::make('Final task', fn () => sleep(1)),
]);
use Scheel\TaskFlow\Renderer\ConsoleRenderer;
use Scheel\TaskFlow\Task;
use Scheel\TaskFlow\TaskManager;
use Symfony\Component\Console\Output\ConsoleOutput;
// The TaskManager has to be constructed manually
$manager = new TaskManager(new ConsoleRenderer(new ConsoleOutput()));
// But the rest of the API is the same, whether you use Laravel or not
$manager->run([
Task::make('Task 1', fn (): null => null),
Task::make('Task 2', children: [
Task::make('Task 2.1', fn (): null => null),
Task::make('Task 2.2', children: [
Task::make('Task 2.2.1', fn () => fn(): null => null),
]),
]),
Task::make('Task 3', fn (): null => null),
]);