2017 © Pedro Peláez
 

windwalker-package middleware

Windwalker Middleware package

image

windwalker/middleware

Windwalker Middleware package

  • Saturday, July 28, 2018
  • by asika32764
  • Repository
  • 3 Watchers
  • 0 Stars
  • 235 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 56 Versions
  • 21 % Grown

The README.md

Windwalker Middleware

Windwalker Middleware is a simple & elegant PHP Middleware library help you integrating middleware pattern in your project., (*1)

Installation via Composer

Add this to the require block in your composer.json., (*2)

``` json { "require": { "windwalker/middleware": "~3.0" } }, (*3)


## Getting Started ### Basic Example This is a simple way using middleware to wrap your logic. ``` php 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 "<<< AAAA\n"; } } class TestB extends AbstractMiddleware { /** * call * * @return mixed */ public function call() { echo ">>> BBBB\n"; $this->next->call(); echo "<<< BBBB\n"; } } $a = new TestA; $a->setNext(new TestB); $a->call();

The result should be:, (*4)

>>> AAAA
>>> BBBB
<<< BBBB
<<< AAAA

Callback Middleware

If you don't want to create a class, you want to set a middleware in runtime, using CallbackMiddleware, (*5)

``` php $a = new TestA; $b = new TestB;, (*6)

$a->setNext($b); $b->setNext(new CallbackMiddleware( function($next) { echo ">>>CCCC\n"; echo "<<<CCCC\n"; } ));, (*7)

$a->call();, (*8)


The result should be:

AAAA BBBB CCCC <<< CCCC <<< BBBB <<< AAAA, (*9)


The `CallbackMiddleware` support second argument as next in constructor: ``` php $ware = new CallbackMiddleware( function($next) { echo ">>>CCCC\n"; $next->call(); echo "<<<CCCC\n"; }, new NextMiddleware )

End The Chaining

If a middleware call next, we have to make sure there are a next middleware exists, or we will return error., (*10)

``` php class TestB extends Middleware { /** * call * * @return mixed */ public function call() { echo ">>> BBBB\n";, (*11)

    $this->next->call();

    echo "<<< BBBB\n";
}

}, (*12)

$b = new TestB;, (*13)

$b->call();, (*14)

// Error, next not exists., (*15)


But yes we can set a blackhole middleware in the last element, that will do nothing when previous class call it, using `EndMiddleware`: ``` php $b = new TestB; $b->setNext(new EndMiddleware); $b->call();

The result still like below:, (*16)

>>> BBBB
<<< BBBB

Chaining Builder

We can using ChainBuilder to chaining multiple middlewares., (*17)

``` php use Windwalker\Middleware\Chain\ChainBuilder;, (*18)

$chain = new ChainBuilder;, (*19)

$chain ->add('TestA') ->add(new TestB) ->add(function($next) { echo ">>>CCCC\n"; echo "<<<CCCC\n"; });, (*20)

$chain->call();, (*21)


The result still:

AAAA BBBB CCCC <<< CCCC <<< BBBB <<< AAAA, (*22)


## Psr7 Middleware ``` php use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Windwalker\Middleware\Chain\Psr7ChainBuilder; use Windwalker\Middleware\Psr7Middleware; class MyPsr7Middleware implements \Windwalker\Middleware\Psr7InvokableInterface { public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $next = null) { // Do something $result = $next($request, $response); // Do something return $result; } } $mid = new Psr7Middleware(function (ServerRequestInterface $request, ResponseInterface $response, $next = null) { // Do something }); $chain = new Psr7ChainBuilder; $chain->add(new MyPsr7Middleware) ->add($mid); $chain->execute(new ServerRequest, new Response);

The Versions

28/07 2018

dev-master

9999999-dev https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+ LGPL-2.0-or-later

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

28/07 2018

3.4.4

3.4.4.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0-or-later

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

08/07 2018

3.4.3

3.4.3.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0-or-later

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

16/06 2018

3.4.2

3.4.2.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0-or-later

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

15/06 2018

3.4.1

3.4.1.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0-or-later

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

20/02 2018

dev-test

dev-test https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+ LGPL-2.0-or-later

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

20/02 2018

3.3

3.3.0.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0-or-later

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

20/02 2018

3.3.1

3.3.1.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0-or-later

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

20/02 2018

3.3.2

3.3.2.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0-or-later

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

20/02 2018

3.4

3.4.0.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0-or-later

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

09/06 2017

3.2.2

3.2.2.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

09/06 2017

3.2.3

3.2.3.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

09/06 2017

3.2.4

3.2.4.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

09/06 2017

3.2.5

3.2.5.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

09/06 2017

3.2.6

3.2.6.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

09/06 2017

3.2.7

3.2.7.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

09/06 2017

3.2.8

3.2.8.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

05/06 2017

3.2.1

3.2.1.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

21/03 2017

3.2

3.2.0.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.5.9

 

The Development Requires

middleware framework windwalker

15/12 2016

3.1.4

3.1.4.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

15/12 2016

3.1.5

3.1.5.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

15/12 2016

3.1.6

3.1.6.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

11/10 2016

3.1

3.1.0.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

11/10 2016

3.1.1

3.1.1.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

11/10 2016

3.1.2

3.1.2.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

11/10 2016

3.1.3

3.1.3.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

18/07 2016

3.0

3.0.0.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

18/07 2016

3.0.1

3.0.1.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

06/07 2016

3.0-beta2

3.0.0.0-beta2 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

04/07 2016

3.0-beta

3.0.0.0-beta https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

12/02 2016

2.1.7

2.1.7.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

12/02 2016

2.1.8

2.1.8.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

12/02 2016

2.1.9

2.1.9.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

11/08 2015

2.1

2.1.0.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

11/08 2015

2.1.1

2.1.1.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

11/08 2015

2.1.2

2.1.2.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

11/08 2015

2.1.4

2.1.4.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

11/08 2015

2.1.5

2.1.5.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

11/08 2015

2.1.6

2.1.6.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

27/07 2015

2.0.9

2.0.9.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

16/12 2014

2.0.0

2.0.0.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

16/12 2014

2.0.1

2.0.1.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

16/12 2014

2.0.2

2.0.2.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

16/12 2014

2.0.3

2.0.3.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

16/12 2014

2.0.4

2.0.4.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

16/12 2014

2.0.5

2.0.5.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

16/12 2014

2.0.6

2.0.6.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

16/12 2014

2.0.7

2.0.7.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

16/12 2014

2.0.8

2.0.8.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

24/11 2014

2.0.0-beta2

2.0.0.0-beta2 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

LGPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

05/10 2014

2.0.0-alpha

2.0.0.0-alpha https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

GPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

05/10 2014

2.0.0-beta1

2.0.0.0-beta1 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

GPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

10/06 2014

1.0.2

1.0.2.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

GPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

10/06 2014

1.0.3

1.0.3.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

GPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

03/05 2014

1.0.1

1.0.1.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

GPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker

12/04 2014

1.0.0

1.0.0.0 https://github.com/ventoviro/windwalker-middleware

Windwalker Middleware package

  Sources   Download

GPL-2.0+

The Requires

  • php >=5.3.10

 

The Development Requires

middleware framework windwalker