vitoresis / extend-analysis
PHP 请求/服务器的分析和配置
1.0.0
2024-09-13 20:18 UTC
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-13 20:20:49 UTC
README
简单强大的请求/服务器监控,具有交互式实时仪表板,用于简单的分析和手动配置。单元测试已在以下版本通过:5.6
、7.4
、8.1
、8.2
和 8.3
安装
composer require vitorsreis/extend-analysis
请求监控
• 简单启动使用
use VSR\Extend\Analysis; # Create driver $driver = new Analysis\Driver\Standard(__DIR__); # Set driver Analysis::setDriver($driver); # @param bool $autoSave [optional] Save automatically on shutdown event # default: true, if false, you need call $requestProfile->save() manually global $profile; $profile = new Analysis\Request();
• 向配置树添加动作
建议使用 try/catch/finally 来捕获错误,尽管 Error\Exception 会自动捕获。在代码中战略性位置使用,以更好地构建您的树,例如调用中间件、模型代理等。
global $profile; try { $profile->start(/* profile_name */); # up level, start action monitor // your code } catch (Throwable $e) { $profile->error($e); # register error in current level // your code } finally { $extra = ...; // [optional] extra info about action $profile->stop($extra || null); # down level, end action monitor }
• 添加关于请求的额外信息
$requestProfile->extra(...);
• 在保存前捕获
您可以在保存前捕获请求并在必要时取消它或删除一些数据。使用 "return false" 来取消保存。
global $requestProfile; $requestProfile->onBeforeSave(function (array $request) { # Toleration of 1000 actions, 300ms of duration and not error if ($request['profile_count'] < 1000 && $request['duration'] < .300 && !$request['error']) { # Remove debug fields to save space in database $fields = [ 'referer', 'useragent', 'get', 'post', 'raw_post', 'files', 'cookies', 'server', 'headers', 'inc_files', 'error', 'extra', 'profile' ]; foreach ($fields as $field) { $request[$field] = null; } } return $request; });
服务器监控
在 examples/serverTop.php 中的使用示例