helingfeng/clockwork

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

资助包维护!
itsgoingd


README

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

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

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

安装

通过 Composer 安装 Clockwork 库。

$ composer require helingfeng/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 界面

打开 your.app/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网站