PHPackages                             windwalker/middleware - 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. [Framework](/categories/framework)
4. /
5. windwalker/middleware

ActiveWindwalker-package[Framework](/categories/framework)

windwalker/middleware
=====================

Windwalker Middleware package

3.5.23(6y ago)0506LGPL-2.0-or-laterPHPPHP &gt;=7.1.3

Since Apr 12Pushed 5y ago3 watchersCompare

[ Source](https://github.com/ventoviro/windwalker-middleware)[ Packagist](https://packagist.org/packages/windwalker/middleware)[ Docs](https://github.com/ventoviro/windwalker-middleware)[ RSS](/packages/windwalker-middleware/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (2)Versions (86)Used By (0)

Windwalker Middleware
=====================

[](#windwalker-middleware)

Windwalker Middleware is a simple &amp; elegant PHP Middleware library help you integrating middleware pattern in your project.

Installation via Composer
-------------------------

[](#installation-via-composer)

Add this to the require block in your `composer.json`.

```
{
    "require": {
        "windwalker/middleware": "~3.0"
    }
}
```

Getting Started
---------------

[](#getting-started)

### Basic Example

[](#basic-example)

This is a simple way using middleware to wrap your logic.

```
use Windwalker\Middleware\CallbackMiddleware;
use Windwalker\Middleware\AbstractMiddleware;

class TestA extends AbstractMiddleware
{
	/**
	 * call
	 *
	 * @return  mixed
	 */
	public function call()
	{
		echo ">>> AAAA\n";

		$this->next->call();

		echo ">> BBBB\n";

		$this->next->call();

		echo ">>CCCC\n";
		echo ">>CCCC\n";

		$next->call();

		echo ">> BBBB\n";

		$this->next->call();

		echo ">>CCCC\n";
        echo "
