PHP Task Runner - Beverage

Beverage

Because Gulp.js doesn't have that extra slice of lemon!
(nor such bad taste when choosing a logo font)

Beverage is a port of Gulp.js to PHP.

I personnaly love Gulp, but as a Windows user, most Unix dependecies are a hassle to install.

Plus, I find the way NPM manages dependencie is pure chaos. node_nodules folder alone represents 80% of the size of most of my projets.

The goal of Beverage is to give the power of Gulp and its ease of use to PHP projects as a Composer package, in situations where Node.js is not an option.

Setup


Use Composer to install

{
    "require-dev": {
        "awakenweb/beverage" : "dev-master"
    }
}

Run composer install --prefer-dist to install dependencies

Run vendor/bin/beverage beverage:init command to get a boilerplate drinkmenu.php file

Then follow the instructions of the github repository README

Official modules



Extend

To create your own modules, commands and watcher listeners, follow the instructions in the EXTEND.md file


Questions and Answers

Why don't you provide a module for "X"?
As a PHP-only project, I rely on the disponiblity of Composer packages that provide said functionality. Some of these packages are ridiculously outdated (i.e. CoffeeScript Composer package targets version 1.3 when current version is 1.8), some require Node.js (Autoprefixer), and some don't even exist. I definitely don't want to add official modules that would require Node.js (Autoprefixer, Livereload, etc) as the goal of the project is to avoid using Node.js as much as possible.
Beverage is also framework agnostic. I won't include by default framework specific packages.
Beverage is really easy to extend. If you want to provide a module for a specific functionality, feel free to create it.

Is Beverage asynchronous?
One of the strengths of Gulp, compared to Grunt, is its ability to run tasks in parallel.
Beverage is not asynchronous for now.
I plan to add this functionnality at some point in the future, but it's not on the priority list. As a Windows user, I don't want to install some Linux virtual machine just to run some basic tasks.
So I want to make sure the solution I choose is totally cross-platform.