PHPackages                             marwanalsoltany/blend - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. marwanalsoltany/blend

ActiveLibrary[CLI &amp; Console](/categories/cli)

marwanalsoltany/blend
=====================

A versatile and lightweight PHP task runner, designed with simplicity in mind.

v1.1.1(3y ago)462783MITPHPPHP ^7.4|^8.0

Since Aug 23Pushed 2y ago1 watchersCompare

[ Source](https://github.com/MarwanAlsoltany/blend)[ Packagist](https://packagist.org/packages/marwanalsoltany/blend)[ Docs](https://github.com/MarwanAlsoltany/blend#readme)[ Fund](https://ko-fi.com/marwanalsoltany)[ RSS](/packages/marwanalsoltany-blend/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (10)Dependencies (1)Versions (15)Used By (3)

*Blend*
=======

[](#blend)

A versatile and lightweight PHP task runner, designed with simplicity in mind.

[![PHP Version](https://camo.githubusercontent.com/ca7c1cc72f841eea06c2e6ffbfd3b4bd63f45d8be910ca1719ffd451c1987941/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253344253343372e342d79656c6c6f773f7374796c653d666c6174266c6f676f3d706870)](https://github.com/MarwanAlsoltany/blend/search?l=php)[![Latest Version on Packagist](https://camo.githubusercontent.com/57bfb9221e3c2ba04a6d6fb6072a2e7e5b3c3e9cf067657939866a841c19deaa/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d617277616e616c736f6c74616e792f626c656e642e7376673f7374796c653d666c6174266c6f676f3d7061636b6167697374)](https://packagist.org/packages/marwanalsoltany/blend)[![Packagist Downloads](https://camo.githubusercontent.com/8eff2a62776f7b9008b0a6717e13d63a068a3e6b0dc7f549ef7b06a16fa24a69/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d617277616e616c736f6c74616e792f626c656e642e7376673f7374796c653d666c6174266c6f676f3d7061636b6167697374)](https://packagist.org/packages/marwanalsoltany/blend/stats)[![GitHub Downloads](https://camo.githubusercontent.com/9f686e7c60e19f031c78e29f2c09ed6d671d424c37289d533c677f27f63abf5f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f4d617277616e416c736f6c74616e792f626c656e642f746f74616c3f6c6f676f3d676974687562266c6162656c3d646f776e6c6f616473)](https://github.com/MarwanAlsoltany/blend/releases)[![License](https://camo.githubusercontent.com/8e5bdeb25cec99ef8c5345207c75dcab39dc539399bd321e9f4e73396b581686/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d7265642e7376673f7374796c653d666c6174266c6f676f3d676974687562)](./LICENSE)[![Maintenance](https://camo.githubusercontent.com/068fd45ce0e3bc55bc753945ee21519d011ea319c92d060f0a62eac52e76f54e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d61696e7461696e65642d7965732d6f72616e67652e7376673f7374796c653d666c6174266c6f676f3d676974687562)](https://github.com/MarwanAlsoltany/blend/graphs/commit-activity)[![Travis Build Status](https://camo.githubusercontent.com/81d14ae421d707dab7acdebd25d0bf2cfad6d6b240500988aa2e9953f3c3bb2e/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f636f6d2f4d617277616e416c736f6c74616e792f626c656e642f6d61737465722e7376673f7374796c653d666c6174266c6f676f3d747261766973)](https://travis-ci.com/github/MarwanAlsoltany/blend)[![codecov](https://camo.githubusercontent.com/017e1b1f7de86db5dd38b5a033fe2fa2e54a075368094dd421e89443997694b7/68747470733a2f2f636f6465636f762e696f2f67682f4d617277616e416c736f6c74616e792f626c656e642f6272616e63682f6d61737465722f67726170682f62616467652e7376673f746f6b656e3d4e574142315556345454)](https://codecov.io/gh/MarwanAlsoltany/blend)

[![Open in Visual Studio Code](https://camo.githubusercontent.com/821a60ac3a234e9dfc8569606ae5c68c932b15215af5b0a5e73715e3aae8a78e/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6f676f3d76697375616c73747564696f636f6465266c6162656c3d266d6573736167653d4f70656e253230696e2532305653253230436f6465266c6162656c436f6c6f723d32633263333226636f6c6f723d303037616363266c6f676f436f6c6f723d303037616363)](https://open.vscode.dev/MarwanAlsoltany/blend) [![Run on Repl.it](https://camo.githubusercontent.com/e90a12e02d77c91473cf4a8f9c832c3c560bd887971cc70a6b4129e19694150a/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6f676f3d7265706c6974266c6162656c3d266d6573736167653d52756e2532306f6e2532305265706c6974266c6162656c436f6c6f723d30653135323526636f6c6f723d666666666666266c6f676f436f6c6f723d666666666666)](https://replit.com/@marwanalsoltany/blend)

[![Tweet](https://camo.githubusercontent.com/cb820a0ecc9645168e33b03925d7f14691262ddbaeaf66a0a91697803d0cba2d/68747470733a2f2f696d672e736869656c64732e696f2f747769747465722f75726c2f687474702f736869656c64732e696f2e7376673f7374796c653d736f6369616c)](https://twitter.com/intent/tweet?text=A%20versatile%20and%20lightweight%20PHP%20task%20runner%2C%20designed%20with%20simplicity%20in%20mind.%20&hashtags=%23PHP%20%23CLI) [![Star](https://camo.githubusercontent.com/a2b24d79123e42a9f4a2dabbfc41c5fa16ff7c226e2fd8fd84b4e61d6833a09f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f4d617277616e416c736f6c74616e792f626c656e642e7376673f7374796c653d736f6369616c266c6162656c3d53746172)](https://GitHub.com/MarwanAlsoltany/blend/stargazers)

Table of Contents[About Blend](#about-blend)
[Installation](#installation)
[Config](#config)
[Examples](#examples)
[API](#api)
[Changelog](./CHANGELOG.md)

If you like this project and would like to support its development, giving it a ⭐ would be appreciated!

[![Blend Demo](./blend-demo.gif)](./blend-demo.gif)

---

Key Features
------------

[](#key-features)

1. Blazing fast
2. Easy to configure
3. Dependency free

---

About Blend
-----------

[](#about-blend)

Blend is a versatile and lightweight PHP task runner, designed with simplicity in mind. Blend was created out of frustration of trying to manage multiple CLI Tools and/or Scripts with different interfaces and trying to remember their names, locations, syntax, and options/arguments. With Blend and its intuitive and powerful API you will have to do this only once, it will, well, as the name suggests *blend* it for you. Blend will present those CLI Tools and/or Scripts the way you like and give you the possibility to access all of them in the form of tasks from a single, beautiful, and insightful interface that will assist you, give you feedback, and suggestions throughout the process.

To keep it as portable and as simple as it can be, the Blend package consists of a single class ([`TaskRunner`](./src/TaskRunner.php)), this class does all the magic for you.

Blend was created to be flexible, it can be installed in many ways, each way has its benefits and drawbacks. Choose the installation method that suits you and your needs best. Check out the [installation](#installation) section for more details.

#### Why does Blend exist?

[](#why-does-blend-exist)

Blend was developed for personal use in the first place. However, it has come so far that it deserves to be published. It may not be what you are looking for, so check it out carefully.

---

Installation
------------

[](#installation)

#### Using Composer:

[](#using-composer)

Require Blend through Composer using:

```
composer require marwanalsoltany/blend
```

This is the recommended way to install Blend. With this installation method, Blend will be installed just like any normal Composer package. You can interact with it using either the `vendor/bin/blend` executable with a config file in the current working directory, or by requiring it in a stand-alone file and supplying the config programmatically. You can of course install it globally and let it be system-wide accessible.

#### Using PHAR:

[](#using-phar)

Download Blend PHAR archive form the [releases](https://github.com/MarwanAlsoltany/blend/releases) page or using one of the commands down below:

```
php -r "copy('https://git.io/JEseO', 'blend');"
```

```
php -r "copy('https://github.com/MarwanAlsoltany/blend/releases/latest/download/blend.phar', 'blend');"
```

Or use the following command to download a specific version (replace `vX.X.X` with the wished version):

```
php -r "copy('https://github.com/MarwanAlsoltany/blend/releases/download/vX.X.X/blend.phar', 'blend');"
```

With this installation method, you will get Blend as a portable PHAR archive, you can place it anywhere you want or even include it in your `PATH` for easy access. With this installation method, you have to supply a config file in order to configure/customize Blend. This installation method exists for portability where Blend is not bound to a specific project and a config file is sufficient. Starting from `v1.0.3`, the PHAR installation method is distinguished from other methods with the task `update` (used to be called `phar:update` before `v1.1.0`) that will update your PHAR to the latest release available in this repository.

#### Using Installer:

[](#using-installer)

Download Blend Setup directly from the [repository](./bin/setup), or using one of the commands down below:

```
php -r "copy('https://git.io/JEseR', 'setup');" && php setup
```

```
php -r "copy('https://raw.githubusercontent.com/MarwanAlsoltany/blend/master/bin/setup', 'setup');" && php setup
```

Using this method, the Blend executable and source will be installed in the current working directory (to take advantage of IDEs Intellisense when configuring Blend programmatically). With this installation method, you can configure Blend programmatically using the `blend` executable file or by supplying a config file in CWD. This installation method exists merely for legacy projects, where Composer is not an option and programmable config is required.

---

Config
------

[](#config)

Blend can be configured using either of the two available config formats:

#### PHP Config [`blend.config.php`](./config/blend.config.php):

[](#php-config-blendconfigphp)

```
