Clockwork是一款专为PHP应用设计的开发者工具,它可以收集应用运行过程中的各类调试数据,通过浏览器扩展或者独立的面板展示给开发者,在Laravel项目中集成后能够快速查看请求参数、数据库查询语句、执行时间、日志信息等关键调试内容,大幅提升问题排查效率。

Clockwork的安装与基础配置
首先需要在Laravel项目中通过Composer安装Clockwork的PHP包,执行以下命令完成安装:
composer require itsgoingd/clockwork --dev
安装完成后,Clockwork会自动注册Laravel的服务提供者,无需手动配置。如果需要自定义配置,可以发布配置文件到项目config目录下:
php artisan vendor:publish --provider="ClockworkSupportLaravelClockworkServiceProvider"
发布后会在config目录下生成clockwork.php配置文件,开发者可以根据需求调整数据收集范围、存储路径等参数,默认配置已经能够满足大部分调试场景的需求。
浏览器扩展安装
Clockwork需要配合浏览器扩展使用,才能在浏览器中直观展示调试数据。目前主流浏览器都支持Clockwork扩展:
- Chrome用户可以在应用商店搜索Clockwork进行安装
- Firefox用户可以在附加组件市场搜索对应扩展安装
- 安装完成后浏览器工具栏会出现Clockwork的图标,当访问Laravel应用页面时图标会变为激活状态
Clockwork核心功能使用
请求信息查看
点击浏览器中的Clockwork图标打开调试面板,在Requests标签页可以查看当前请求的所有相关信息,包括请求方法、请求路径、请求参数、响应状态码、请求总耗时等内容。如果需要查看历史请求记录,可以在面板中切换不同的请求条目。
数据库查询分析
在Database标签页中,Clockwork会展示当前请求执行的所有数据库查询语句,每条查询都会标注执行耗时、绑定的参数,还可以直接查看查询的原始SQL语句,方便开发者排查慢查询或者参数绑定错误的问题。示例查询信息展示如下:
| 查询语句 | 执行耗时 | 绑定参数 |
|---|---|---|
| select * from users where id = ? | 12ms | [1] |
| insert into posts (title, content) values (?, ?) | 8ms | ["测试标题", "测试内容"] |
自定义日志与事件记录
在Laravel代码中可以直接使用Clockwork提供的日志方法记录自定义调试信息,这些信息会出现在面板的Logs标签页中。首先在代码中引入Clockwork门面:
use ClockworkSupportLaravelFacadeClockwork;
然后在需要记录信息的位置添加日志代码:
// 记录普通调试信息
Clockwork::info("用户登录成功,用户ID:" . $userId);
// 记录警告信息
Clockwork::warning("订单金额异常,金额:" . $orderAmount);
// 记录调试数据
Clockwork::debug(["请求参数" => $request->all()]);
除了日志之外,还可以使用Clockwork记录自定义事件,查看事件的触发时间和执行耗时:
// 开始记录事件
Clockwork::startEvent("生成报表", "开始生成用户报表");
// 执行报表生成逻辑
// ...
// 结束事件记录
Clockwork::endEvent("生成报表");
性能分析
Clockwork的Timeline标签页会以时间轴的形式展示请求处理过程中各个阶段的耗时,包括中间件执行、控制器处理、视图渲染、数据库查询等各个环节的时间占比,开发者可以直观看到性能瓶颈所在,针对性进行优化。
生产环境使用注意事项
Clockwork默认只在开发环境启用,生产环境中不会收集调试数据,也不会暴露调试面板。如果需要临时在生产环境开启调试,需要修改.env文件中的APP_ENV为local,同时建议调试完成后及时关闭,避免调试数据泄露带来安全风险。另外可以通过配置文件设置仅允许特定IP地址访问调试面板,提升安全性:
// config/clockwork.php 配置允许访问的IP "allowed_ips" => ["127.0.0.1", "192.168.0.1"],