PHP的简单调试方法
我想调试PHP代码,看看在一系列集成中正在处理的数据发生了什么 调试这个.php文件(不使用复杂功能Magento/ZendDesk/Plugins环境设置)的最简单方法是什么? 我想象的是:PHP的简单调试方法,php,magento,Php,Magento,我想调试PHP代码,看看在一系列集成中正在处理的数据发生了什么 调试这个.php文件(不使用复杂功能Magento/ZendDesk/Plugins环境设置)的最简单方法是什么? 我想象的是: 在输出.log文件的代码中设置调试点 设置可以在Chrome开发工具中看到的警报 谢谢输出值 当您需要一种简单的方法来调试程序而没有其他选项时,通常可以输出值。有时这意味着要进行var_转储或记录一系列事件 在程序中有调试日志记录是很有用的。在PHP中,可以使用各种记录器记录调试消息。当程序在调试模式
- 在输出.log文件的代码中设置调试点
- 设置可以在Chrome开发工具中看到的警报
谢谢输出值 当您需要一种简单的方法来调试程序而没有其他选项时,通常可以输出值。有时这意味着要进行var_转储或记录一系列事件 在程序中有调试日志记录是很有用的。在PHP中,可以使用各种记录器记录调试消息。当程序在调试模式下运行或日志级别设置为调试时,这些消息将在stdout、stderr或日志文件中结束。在“调试模式”下,日志会很快填满,所以您只需要暂时打开它。但我在这方面做得太超前了。让我备份到一些输出值的简单方法。 将变量转储到标准输出 var_dump函数是查看PHP程序中发生了什么的一种方法。它将把一个变量值转储到stdout。您还可以使用其他函数通过输出进行调试。以下是一些,以及它们将如何帮助您:
- var_dump($var))将变量类型和值转储到标准输出
- print\r($var)以人类可读的形式将变量值打印到stdout
- get_defined_vars()获取所有已定义的变量,包括内置变量和自定义变量(打印以查看它们)
- debug_zval_dump($var)转储变量及其引用计数。当有多个路径更新单个引用时,这非常有用
- debug_print_backtrace()打印显示当前函数调用链的回溯
- debug_backtrace()获取回溯。您可以打印\u r,将其记录到文件中,或将其异步发送到日志端点
<?php
$myVar = "hello world!";
var_dump($myVar);
print_r($myVar);
$allVars = get_defined_vars();
print_r($allVars);
debug_zval_dump($allVars);
function sayHello($hello) {
echo $hello;
debug_print_backtrace();
}
sayHello($myVar);
?>
这些函数是调试PHP代码的快速方法。每个函数都有一个用途,可用于调试
- 错误报告设置日志记录的级别。E_通知在开发过程中很有用,因为它会告诉您诸如未分配变量之类的缺陷
- display_errors告诉PHP是否以及在何处显示错误消息
- 只有在调试时才应使用“显示\u启动\u错误”
- 日志错误和错误日志一起将错误发送到日志文件。在生产中执行此操作,而不是将其显示给最终用户
- 日志聚合您希望在一个位置查看所有日志。如果您可以跨实例集中日志和度量,那就更好了!无论哪里发生麻烦,你都能发现
- 警告:没有什么比自动化更好的了。如果你是程序员,你知道我的意思!如果可以的话,你会想要自动化几乎所有的东西。警报是一种在出现问题时自动向组电子邮件发送警报的方法(在连续性方面优于个人)。这可能是服务器问题或日志中的错误。它应该是可配置的,您应该可以控制配置李>
- 日志中的跟踪什么是跟踪?它不仅仅是一个堆栈转储,可以让您看到发生错误时发生了什么。这也是跟踪性能的一种方法,性能通常是一个缺陷的标志或原因
- 日志条目的重复数据消除当错误导致错误时,它可以很快填满日志。只需将成百上千个相同条目的日志进行梳理,就可以让您大开眼界。重复数据消除消除消除了痛苦李>
希望这能有所帮助。Chrome开发工具(以及一般的浏览器开发工具)用于客户端编码,而不是服务器端(除非涉及AJAX)。但是对于这个QT已经有很多资源了。重点是我不想设置所有的调试环境,只想了解正在发生的事情。这可以通过将输出发送到前端来实现,对吗?这个答案正是我所需要的。我还在决定哪一个是最好的选择,