yunyami/clockwork

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

资助包维护!
itsgoingd

v1.0.3 2023-11-09 09:48 UTC

This package is auto-updated.

Last update: 2024-09-10 07:51:27 UTC


README

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

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

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

安装

通过Composer安装Clockwork库。

$ composer require itsgoingd/clockwork

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

注意:如果您使用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 网站 上了解更多关于可用功能的信息。