bitexpert/prophiler-psr7-middleware
最新稳定版本:v0.6.0
Composer 安装命令:
composer require bitexpert/prophiler-psr7-middleware
包简介
PSR-7 middleware for Prophiler
关键字:
README 文档
README
This package provides a slim PSR-7 middleware implementation based on the zendframework/zend-stratigility package. The middleware is responsible for "adding" the Prophiler Toolbar output to the Response object.
Installation
The preferred way of installing bitexpert/prophiler-psr7-middleware is through Composer. Simply add
bitexpert/prophiler-psr7-middleware as a dependency:
composer.phar require bitexpert/prophiler-psr7-middleware
How to use the Prophiler PSR7 Middleware
Create the Prophiler toolbar:
$prophiler = new \Fabfuel\Prophiler\Profiler(); $toolbar = new \Fabfuel\Prophiler\Toolbar($prophiler);
Set-up your PSR-7 middleware, e.g. by using zendframework/zend-stratigility:
$request = \Zend\Diactoros\ServerRequestFactory::fromGlobals(); $response = \Zend\Diactoros\Response(); $app = new \Zend\Stratigility\MiddlewarePipe();
Add the ProphilerMiddleware to the Middleware pipe:
$app->pipe(new \bitExpert\Http\Middleware\Psr7\Prophiler\ProphilerMiddleware($toolbar));
"Execute" the Middleware pipe:
$response = $app($request, $response);
How to add the Prophiler PSR7 Middleware to an Expressive app
Expressive 1.x
Register a pre_routing middleware in config/autoload/middleware-pipeline.local.php:
return [ 'middleware_pipeline' => [[ 'middleware' => bitExpert\Http\Middleware\Psr7\ Prophiler\ProphilerMiddleware::class, 'priority' => 11000, ]] ];
Add a factory definition to config/autoload/dependencies.global.php:
return [ 'dependencies' => [ 'factories' => [ bitExpert\Http\Middleware\Psr7\Prophiler\ ProphilerMiddleware::class => App\Middleware\ProphilerFactory::class ] ] ];
The \App\Middleware\ProphilerFactory implementation looks like this:
namespace App\Middleware; use Interop\Container\ContainerInterface; use Fabfuel\Prophiler\Profiler; use Fabfuel\Prophiler\Toolbar; use bitExpert\Http\Middleware\Psr7\Prophiler\ProphilerMiddleware; class ProphilerFactory { public function __invoke(ContainerInterface $container) { $prophiler = new Profiler(); $toolbar = new Toolbar($prophiler); return new ProphilerMiddleware($toolbar); } }
Expressive 2.x (Programmatic Pipelines)
Adding the following code snippet to the config/pipeline.php file:
$app->pipe(ErrorHandler::class); $debug = $app->getContainer()->get('config')['debug'] ?? false; if ($debug) { $prophiler = new \Fabfuel\Prophiler\Profiler(); $toolbar = new \Fabfuel\Prophiler\Toolbar($prophiler); $middleware = new \bitExpert\Http\Middleware\Psr7\Prophiler\ProphilerMiddleware($toolbar); $app->pipe($middleware); } $app->pipe(ServerUrlMiddleware::class);
Configure Prophiler
By default Prophiler will not log or profile anything. You can add custom benchmarks by adding the following code snippet to the code you want to profile:
$profiler->start('\My\Class::doSomeOtherThing', ['additional' => 'information'], 'My Component'); // here be your custom code $profiler->stop();
In addition to that Prophiler offers a lot of adapters and decorators for 3rd party tools and libraries.
License
The Prophiler PSR7 Middleware is released under the Apache 2.0 license.
统计信息
- 总下载量: 9.7k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2015-10-18