matthewbdaly / laravel-error-snapshot
将客户端和服务器端错误以一致格式存储,以辅助调试
0.0.4
2017-11-18 15:15 UTC
Requires
Requires (Dev)
- mockery/mockery: ^1.0
- orchestra/testbench: ^3.5
- orchestra/testbench-browser-kit: ^3.5
- phpunit/phpunit: ^6.4
- psy/psysh: ^0.8.14
- satooshi/php-coveralls: ^1.0
- squizlabs/php_codesniffer: ^3.1
This package is auto-updated.
Last update: 2024-08-28 07:12:51 UTC
README
将客户端和服务器端错误以一致格式存储,以辅助调试。
用例
随着单页Web应用的发展,许多现代Web应用已经将之前在服务器端处理的功能转移到客户端。这并非没有优点,但这也意味着许多错误可能被锁定在用户的Web浏览器中,无法轻松报告和修复。
此包为Laravel应用程序提供一个API端点,接受错误的堆栈跟踪,以及可选的应用程序状态表示和元字段。它通过在接收到请求时触发事件来工作,事件监听器将数据持久化到数据库。
如果您想捕获服务器端异常,也可以自己触发此事件。这允许将所有异常存储在一个地方,以便于管理。
安装
$ composer require matthewbdaly/laravel-error-snapshot
使用方法
此包在 /api/snapshot
提供一个API端点。如果您想存储客户端发生的错误,应向该端点发送以下参数的 POST
请求
trace
- 错误的完整堆栈跟踪(必需)。state
- 应用程序状态的JSON表示。这主要用于使用像Redux或Vuex这样的数据存储的情况。meta
- 其他数据的JSON表示,您希望存储以帮助调试,例如当前路由、JSON Web令牌或购物车状态
如果用户已登录,用户ID也将自动捕获。
对于服务器端应用程序,您应触发事件 Matthewbdaly\LaravelErrorSnapshot\Events\SnapshotCaptured
并以数组形式将相同的数据传递给构造函数
$data = [ 'trace' => $trace, 'state' => $state, 'meta' => $meta, 'user_id' => Auth::user()->id, ]; event(new SnapshotCaptured($data));
在大多数情况下,您可能想在主异常处理程序中这样做。
查看快照
由于查看快照将是特定于应用程序的,因此没有视图、控制器或路由用于显示它们。您应自行实现此功能。已包含一个用于检索快照的存储库,只需类型提示 Matthewbdaly\LaravelErrorSnapshot\Contracts\Repositories\Snapshot
即可检索它。