yunyami / clockwork
在浏览器中使用PHP开发工具
Requires
- php: >=5.6
- ext-json: *
Suggests
- ext-pdo: Needed in order to use a SQL database for metadata storage
- ext-pdo_mysql: Needed in order to use MySQL for metadata storage
- ext-pdo_postgres: Needed in order to use Postgres for metadata storage
- ext-pdo_sqlite: Needed in order to use a SQLite for metadata storage
- ext-redis: Needed in order to use Redis for metadata storage
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 网站 上了解更多关于可用功能的信息。