andreas-weber / php-runner
Library to simplify the implementation of sophisticated interdependent tasks.
Installs: 5 894
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 1
Open Issues: 0
Requires
- php: >=5.4
- ext-reflection: *
- ext-spl: *
- monolog/monolog: ~1.0
- psr/log: ~1.0
Requires (Dev)
- phploc/phploc: ~2.0
- phpmd/phpmd: ~2.1
- phpunit/phpunit: ~4.4
- sebastian/phpcpd: ~2.0
- squizlabs/php_codesniffer: ~2.1
This package is not auto-updated.
Last update: 2024-12-07 17:06:10 UTC
README
Library to simplify the implementation of sophisticated interdependent tasks.
Features
- Encapsulate logic in different tasks instead of writing spaghetti code.
- Chain task runners to describe dependencies between tasks.
- Pass a payload to task runner. Payload gets passed from task to task.
- Skip single tasks during runtime by implementing unless() method.
- Use setUp() and tearDown() on each task to prepare and cleanup task execution.
- Call retry() in task to use task runners retry handling.
- Call skip() in task to skip task processing.
- Call fail() in task to fail complete task run.
- Use events to hook in custom logic during task run.
Events
This library has an internal event system, which you can use to react with custom hooks during execution. The following events are available:
- runner.start
- runner.success
- runner.failure
- runner.task.start
- runner.task.success
- runner.task.failure
- runner.task.retry
- runner.task.skip
- runner.task.unless
Requirements
Check shipped composer.json.
Installation
Simply add a dependency on andreas-weber/php-runner
to your project's Composer composer.json
file.
Examples
- Simple Task-Runner
- Task-Runner with retry handling
- Using setUp() and tearDown()
- Using success callback
- Skip task under certain circumstances
- Chain task runners
- Raise exception, when exit code is not zero
Developer
Environment
Boot:
vagrant up
Enter virtual machine:
vagrant ssh
Run tests:
cd /vagrant
vendor/bin/phpunit src/Test/
Build targets
vagrant@andreas-weber:/vagrant$ ant
Buildfile: /vagrant/build.xml
help:
[echo]
[echo] The following commands are available:
[echo]
[echo] | +++ Build +++
[echo] |-- build (Run the build)
[echo] | |-- dependencies (Install dependencies)
[echo] | |-- tests (Lint all files and run tests)
[echo] | |-- metrics (Generate quality metrics)
[echo] |-- cleanup (Cleanup the build directory)
[echo] |
[echo] | +++ Composer +++
[echo] |-- composer -> composer-download, composer-install
[echo] |-- composer-download (Downloads composer.phar to project)
[echo] |-- composer-install (Install all dependencies)
[echo] |
[echo] | +++ Testing +++
[echo] |-- phpunit -> phpunit-full
[echo] |-- phpunit-tests (Run unit tests)
[echo] |-- phpunit-full (Run unit tests and generate code coverage report / logs)
[echo] |
[echo] | +++ Metrics +++
[echo] |-- coverage (Show code coverage metric)
[echo] |-- phploc (Show lines of code metric)
[echo] |-- qa (Run quality assurance tools)
[echo] |-- |-- phpcpd (Show copy paste metric)
[echo] |-- |-- phpcs (Show code sniffer metric)
[echo] |-- |-- phpmd (Show mess detector metric)
[echo] |
[echo] | +++ Metric Reports +++
[echo] |-- phploc-report (Generate lines of code metric report)
[echo] |-- phpcpd-report (Generate copy paste metric report)
[echo] |-- phpcs-report (Generate code sniffer metric report)
[echo] |-- phpmd-report (Generate mess detector metric report)
[echo] |
[echo] | +++ Tools +++
[echo] |-- lint (Lint all php files)
[echo]
Thoughts
Pull requests are highly appreciated. Built with love. Hope you'll enjoy.. :-)