v0.6.0 2014-08-12 08:04 UTC


Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads Latest Unstable Version License

Got a PHP project? Heard of Grunt and Gulp but don't use NodeJS? Task is a pure PHP task runner.

  • Leverage PHP as a scripting language, and as your platform of choice.
  • Use loads of nice features inspired by Grunt and Gulp (and Phing).
  • Employ Symfony components for effortless CLI goodness.
  • Extend with plugins.

For more information and documentation goto taskphp.github.io, or tweet us at @taskphp.



use Task\Plugin;

require 'vendor/autoload.php';

$project = new Task\Project('wow');

$project->inject(function ($container) {
    $container['phpspec'] = new Plugin\PhpSpecPlugin;
    $container['fs'] = new Plugin\FilesystemPlugin;
    $container['sass'] = (new Plugin\Sass\ScssPlugin)
    $container['watch'] = new Plugin\WatchPlugin;

$project->addTask('greet', function () {
    $this->getOutput()->writeln('Hello, World!');

$project->addTask('test', ['phpspec', function ($phpspec) {

$project->addTask('css', ['fs', 'sass', function ($fs, $sass) {

$project->addTask('css.watch', ['watch', function ($watch) {
        ->addListener('modify', function ($event) {
            $this->runTask('css', $this->getOutput());

return $project;
$> task greet
Hello, World!

$> task test


  17  ✔ is initializable
  22  ✔ should call function with services


  10  ✔ is initializable
  20  ✔ should have a container
  26  ✔ should resolve no dependencies
  32  ✔ should resolve one dependency
  39  ✔ should resolve many dependencies
  50  ✔ should normalize dependencies
  58  ✔ should normalize complex dependencies

2 specs
9 examples (9 passed)