djstarcom / laravel-server-timing
从您的Laravel应用程序内部添加Server-Timing头部信息。
Requires
- illuminate/support: 5.8.*|^6.0|^7.0|^8.0
- symfony/stopwatch: ^4.0|^5.0
Requires (Dev)
- orchestra/testbench: ^4.6
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-29 05:29:42 UTC
README
从您的Laravel应用程序内部添加Server-Timing头部信息。
安装
您可以通过composer安装此包。
composer require djstarcom/laravel-server-timing
使用
要添加server-timing头部信息,您需要将\DJStarCOM\ServerTiming\Middleware\ServerTimingMiddleware::class
中间件添加到您的HTTP Kernel中。为了获得最准确的结果,请将中间件作为中间件堆栈中首先加载的中间件。
默认情况下,中间件只测量三件事,以保持尽可能轻量。
- 引导(中间件被调用之前的时间)
- 应用程序时间(在应用程序中获取响应的时间)
- 总时间(发送响应之前的总时间)
安装包成功后,您可以在浏览器的开发者工具中看到您的计时信息。以下是从Chrome浏览器中的一个示例。
添加额外测量
如果您想提供额外的测量,可以使用start和stop方法。如果您没有明确停止测量的事件,一旦中间件收到您的响应,该事件将自动停止。如果您想测量Blade视图编译所需的时间,这可能会很有用。
ServerTiming::start('Running expensive task'); // do something ServerTiming::stop('Running expensive task');
如果您知道要设置的精确时间,您可以使用setDuration
方法。持续时间应以毫秒为单位设置
ServerTiming::setDuration('Running expensive task', 1200);
除了提供毫秒作为持续时间外,您还可以传递一个将被测量的可调用对象
ServerTiming::setDuration('Running expensive task', function() { sleep(5); });
添加文本信息
您还可以使用Server-Timing中间件仅设置文本信息,而不提供持续时间。
发布配置文件
可以使用以下命令发布配置文件:php artisan vendor:publish --tag=server-timing-config
您可以通过将timing.enabled
配置更改为false来禁用中间件。
ServerTiming::addMetric('User: '.$user->id);
测试
composer test
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件s.tsepeniuk@gmail.com报告,而不是使用问题跟踪器。
鸣谢
许可协议
MIT许可协议(MIT)。有关更多信息,请参阅许可文件。