guanguans / pipeline
An elegant PHP middleware pipeline. - 一个优雅的 PHP 中间件管道。
Fund package maintenance!
Wechat
Requires
- php: >=7.2
- psr/container: ^1.1 || ^2.0
Requires (Dev)
- brainmaestro/composer-git-hooks: ^2.7
- friendsofphp/php-cs-fixer: ^2.16
- mockery/mockery: ^1.2
- overtrue/phplint: ^2.3 || ^3.0
- phpbench/phpbench: ^1.0
- phpunit/phpunit: ^8.0||^9.0
- vimeo/psalm: ^4.0
README
An elegant PHP middleware pipeline. - 一个优雅的 PHP 中间件管道。
Requirement
- PHP >= 7.2
Installation
$ composer require guanguans/pipeline --prefer-dist -vvv
Usage
Code
<?php require __DIR__.'/vendor/autoload.php'; use Guanguans\Pipeline\Pipeline; (new Pipeline()) ->send('passable') ->through( function ($passable, Closure $next){ echo '1. Before apply first middleware.'.PHP_EOL; $next($passable); echo '7. After apply first middleware.'.PHP_EOL; }, function ($passable, Closure $next){ echo '2. Before apply second middleware.'.PHP_EOL; $next($passable); echo '6. After apply second middleware.'.PHP_EOL; }, function ($passable, Closure $next){ echo '3. Before apply third middleware.'.PHP_EOL; $next($passable); echo '5. After apply third middleware.'.PHP_EOL; } ) // ->via('differentMethod') // ->thenReturn() ->then(function ($passable){ echo '4. Middleware is finished.'.PHP_EOL; return $passable; });
Output
1. Before apply first middleware. 2. Before apply second middleware. 3. Before apply third middleware. 4. Middleware is finished. 5. After apply third middleware. 6. After apply second middleware. 7. After apply first middleware.
Testing
$ composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.