Laravel Telescope是Laravel的新应用型debug助手,由Mohamed Said和Taylor Otwell编写。它是开源的,在GitHub上免费,并将在下周发布。php
您将经过Composer将Telescope做为第三方依赖项引入您的应用程序。web
安装Telescope后,您将经过访问应用程序的/ telescope路径来访问它。数据库
Telescope是作什么的?数组
若是您曾经使用过Clockwork或Laravel Debugbar,认为它们是功能强大的单机UI。缓存
Telescope由一系列watchers组成,这些watchers“观察”进入应用程序的每一个请求,不管是来自HTTP请求,来自命令行,来自调度程序仍是来自队列。闭包
这些watchers捕获关于这些请求及相关数据的各类信息- 例如数据库查询及其执行时间、缓存命中和未命中、事件触发、邮件发送等等。ide
UI中有用于检查如下各项的选项卡,每一个选项卡都反映一个“Watcher”:命令行
要求(Requests)debug
命令 (Commands)3d
时间表 (Schedule)
工做 (Jobs)
例外 (Exceptions)
日志 (Logs)
转储 (Dumps)
查询 (Queries)
模型 (Models)
活动 (Events)
邮件(Mail)
通知 (Notifications)
高速缓存 (Cache)
Redis
Tab/Watchers
让咱们逐步浏览每一个tab让咱们检查的内容。每一个tab都显示一个列表页面,而后容许您深刻查看任何给定项目的详细信息页面。
(HTTP)请求
此tab容许您查看进入应用程序的全部HTTP请求。您将可以查看全部HTTP请求以及有关每一个请求的各类有用信息。
每一个请求页面还显示与其余watchers有关此请求的任何数据; 例如:全部数据库查询以及它们花了多长时间;哪一个用户已针对此请求进行身份验证等等。
命令
命令选项卡列出已运行的全部命令及其退出代码。进去后,您还能够查看全部参数、选项和相关项目。
时间表
列出已运行的计划任务。在每一个任务的详细信息页面上,查看他们的全部计划信息,例如他们的cron计划(例如* * * * *)。
做业(Jobs)
“Jobs”选项卡列出已运行或所有正在运行的全部做业。它与Horizon相似,但Horizon仅限Redis。不只仅是一个UI,它还与队列工做者的运行方式进行交互。另外一方面,Telescope只是一个UI,但它也适用于全部队列驱动程序。
在做业列表页面上,您能看到做业名称、运行的队列和链接、状态以及发生时间。
在做业详情页面上,您将可以看到全部这些数据以及:主机名、做业的彻底限定类名、链接、队列、尝试次数、超时、标签。
若是有用户附加,则使用附加的Eloquent模型(例如App \ Video:1)自动标记做业。
标签(Tags)
诸如请求、命令等项目将由Telescope自动分配标签(例如,若是它是用户 的请求,它将自动分配标签Auth:1; 您能够单击该标签,它将仅过滤他们的标记项,等等)
就像HTTP请求同样,您能够看到与此做业相关的各类信息,例如它触发的数据库查询,此做业启动的做业以及它生成的任何日志。
若是您启动闭包(closure)而不是看到App \ Jobs \ RenderVideo,您会看到Closure(web.php:43)显示它的定义位置。
新队列的闭包。
Taylor为一个新库作出了贡献,带回了队列的闭包,Laravel曾经拥有这些闭包,但不久前就抛弃了。使用这些贡献和这个新库,若是你用模型将它导入到闭包中,它将存储模型ID,而不是整个模型,这要好得多(以及已经有的队列类)。因此,队列闭包又回来了!
此次将用哈希序列化闭包; 这是由于有了排队闭包,有人能够事先修改你的队列事件,以便经过它注入任意PHP,这是很差的!如今它哈希序列化了,并再次检查你的代码。
Closure被序列化为一个长字符串,其中包含整个代码及其散列(使用相似于签名URL的代码)。
例外状况
记录全部异常并容许您检查每一个异常。这将向您显示与其余选项卡相似的数据,如主机名、类型、请求、标签、通过身份验证的用户。
可是你也会看到代码中的位置,突出显示,上面和下面有几行代码;并且你也会得到完整的堆栈跟踪。
您还能够从引起它的请求中获取指向异常详细信息页面的连接。
注意:在许多选项卡中,若是您在单个页面上(例如,给定例外的页面),您将得到指向生成该页面的请求页面的连接。
若是屡次发生相同的异常,它们将在列表页面上进行分组,但您仍然能够深刻查看异常显示页面中的各个异常。
日志
“日志”选项卡显示基本日志消息、级别以及全部日志项的发生时间。
当您访问该我的详细信息页面时,在日志项中,您能够看到更多信息,包括传递给日志项的任何上下文数据(做为数组)。
“比挖掘原始文本文件更好”。
若是您使用数组将上下文传递给日志项, 能够查看全部数据,查看触发它的请求,哪一个用户触发了它。“比挖掘原始文本文件好一点。”