itsgoingd/clockwork

在浏览器中使用 PHP 开发工具

资助包维护!
itsgoingd

安装次数: 17,502,745

依赖项: 101

建议者: 11

安全: 0

星标: 5,628

关注者: 63

分支: 323

开放问题: 78

v5.2.2 2024-04-14 10:49 UTC

README

Clockwork 是一个可在浏览器中使用的 PHP 开发工具。Clockwork 让您深入了解您的应用程序运行时情况 - 包括请求数据、性能指标、日志条目、数据库查询、缓存查询、Redis 命令、已分发的事件、队列任务、渲染视图等 - 用于 HTTP 请求、命令、队列任务和测试。

此存储库包含 Clockwork 的服务器端组件。

有关详细信息,请访问 Clockwork 网站

安装

通过 Composer 安装 Clockwork 库。

composer require itsgoingd/clockwork

恭喜您,已完成!要启用更多功能,如命令或队列任务分析,请通过 vendor:publish Artisan 命令发布配置文件。

注意:如果您正在使用 Laravel 路由缓存,您需要使用 route:cache Artisan 命令刷新它。

请参阅 Clockwork 网站上的 完整安装说明

功能

收集数据

Clockwork 服务器端组件收集并存储有关您应用程序的数据。

默认情况下,Clockwork 只在您的应用程序处于调试模式时才处于活动状态。您可以选择显式启用或禁用 Clockwork,甚至将 Clockwork 设置为始终收集数据而不暴露它们以供进一步分析。

我们默认收集了大量有用的数据,但您可以在配置文件中启用更多功能或禁用不需要的功能。

某些功能可能允许进行高级选项,例如,对于数据库查询,您可以为慢查询设置阈值或启用检测重复的(N+1)查询。请查看配置文件以查看 Clockwork 可以做什么。

有几个选项允许您选择哪些请求下 Clockwork 处于活动状态。

按需模式仅在 Clockwork 应用程序打开时收集数据。您甚至可以指定在应用程序设置中设置的密钥以收集请求。仅错误将仅记录以 4xx 和 5xx 响应结束的请求。仅慢速将仅收集响应超过设置慢速阈值的请求。您还可以通过自定义闭包过滤收集和记录的请求。默认情况下,CORS 预检请求不会收集。

Clockwork 4.1 中的新功能,现在也可以收集 artisan 命令、队列任务和测试,您需要在配置文件中启用此功能。

Clockwork 还收集有关日志消息或数据库查询之类的数据的堆栈跟踪。默认情况下收集跟踪的最后 10 帧。您可以在配置文件中更改帧限制或禁用此功能。

查看数据

Web 接口

访问 /clockwork 路由以查看和交互所收集的数据。

应用程序将显示所有执行的请求,这对于请求不是由浏览器发起的情况非常有用,例如您正在为开发 API 的移动应用程序。

浏览器扩展

Chrome 和 Firefox 也提供了浏览器开发工具扩展。

工具栏

Clockwork 现在为您提供选项,在您的应用中以工具栏的形式显示基本请求信息。

工具栏完全在客户端渲染,需要安装一个微小的 JavaScript 库。

了解更多 请访问 Clockwork 网站。

日志记录

您可以通过 clock() 辅助函数记录任何变量,从简单的字符串到数组或对象,甚至多个值。

clock(User::first(), auth()->user(), $username)

clock() 辅助函数返回其第一个参数,因此您可以轻松地将内联调试语句添加到您的代码中。

User::create(clock($request->all()))

如果您想指定日志级别,可以使用长格式调用。

clock()->info("User {$username} logged in!")

时间线

时间线为您提供了应用程序运行时间的可视化表示。

要向时间线添加事件 - 以描述开始,执行跟踪的代码并完成事件。还提供了一个流畅的 API 来进一步配置事件。

// using timeline api with begin/end and fluent configuration
clock()->event('Importing tweets')->color('purple')->begin();
    ...
clock()->event('Importing tweets')->end();

或者,您可以执行跟踪代码块作为闭包。您还可以选择使用基于数组的配置而不是流畅的 API。

// using timeline api with run and array-based configuration
clock()->event('Updating cache', [ 'color' => 'green' ])->run(function () {
    ...
});

有关可用功能的更多信息,请访问 Clockwork 网站