junty/junty-taskrunner

Task runner for Junty.

v0.2.2 2016-04-07 19:39 UTC

This package is not auto-updated.

Last update: 2024-04-24 23:00:03 UTC


README

Packagist Travis Scrutinizer GitHub license

Junty task runner component.

Install

$ composer require junty/junty-taskrunner

Usage

Basig usage

<?php
require 'vendor/autoload.php';

use Junty\TaskRunner\Runner\Runner;

$runner = new Runner();

$runner->task('say_hello', function () {
    echo 'hello!'; 
});

$runner->my_task_2 = function () {
    // ...
};

$runner->group('tests', function () {
    $this->task('tests_for_users', function () {
        // ...
    });

    $this->task('tests_for_admins', function () {
        // ...
    });
});

$runner->run(); // Runs all registred tasks

Methods

task

Creates a task with Junty\TaskRunner\Task\TaskInterface or callable one.

$runner->task('my_task', function () {});

// or

$runner->task(new MyTask());

group

Creates a group of tasks with Junty\TaskRunner\Task\GroupInterface or callable one.

$runner->group('my_group', function () {
    $this->task('my_task_from_group_1', function () {});

    // Another tasks
});

| A group and a task cannot have the same name!

order

Orders the execution task and groups order.

$runner->order('my_group', 'my_task', 'my_group_2');

run

Runs all tasks and groups.

$runner->run();

runTask

Runs a single registred task or instance of TaskInterface.

$runner->runTask('my_registred_task');

// or

$runner->runTask(new MyTask());

runGroup

Runs a single registred group or instance of GroupInterface.

$runner->runGroup('my_registred_group');

// or

use Junty\TaskRunner\Task\Group;

$runner->runGroup(new class() extends Group
{
    public function __construct()
    {
    }

    public function getName() : string
    {
        return 'my_group';
    }

    public function task($task, callable $task = null)
    {
    }

    public function getTasks() : TaskCollection
    {
        $collection = new TaskCollection();

        $collection->set(new MyTask());
        $collection->set(new MyOtherTask());

        return $collection;
    }
});