PHP 简单的调试方式
PHP simple debugging ways
我想调试 PHP 代码,看看在集成中处理的数据发生了什么。
调试此 .php 文件的最简单方法是什么(不使用复杂的功能 Magento/ZendDesk/Plugins 环境设置)??
我想是这样的:
- 在输出 .log 文件的代码中设置调试点
- 设置可以在 Chrome 开发工具中看到的警报
谢谢
输出值
当您需要一种简单的方法来调试程序并且没有其他选择时,您通常可以输出值。有时这意味着执行 var_dump 或记录整个事件系列。
在您的程序中进行调试日志记录很有用。在 PHP 中,您可以使用各种记录器来记录调试消息。当程序 运行 处于调试模式或日志级别设置为调试时,这些消息将最终出现在您的标准输出、标准错误或日志文件中。在“调试模式”下,日志会很快填满,因此您只想暂时打开它。但我在这里超前了。让我备份一些简单的输出值的方法。
将变量转储到标准输出
var_dump 函数是一种查看 PHP 程序中发生的情况的方法。它会将变量值转储到标准输出。您还可以使用其他功能通过输出进行调试。以下是一些内容以及它们将如何帮助您:
- var_dump ($var)) 将变量类型和值转储到标准输出。
- print_r ($var) 将变量值以人类可读的形式打印到标准输出。
- get_defined_vars() 获取所有定义的变量,包括内置变量和自定义变量(print_r 查看它们)。
- debug_zval_dump ($var) 转储变量及其引用计数。当有多个路径更新单个引用时,这很有用。
- debug_print_backtrace() 打印显示当前函数调用链的回溯。
- debug_backtrace() 获取回溯。您可以 print_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 代码的快捷方式。每个函数都有一个用途,可用于调试。
- error_reporting 设置日志级别。 E_NOTICE 在开发过程中很有用,因为它会告诉您有关未分配变量等缺陷的信息。
- display_errors 告诉 PHP 是否以及在何处显示错误消息。
- display_startup_errors 只应在调试时使用。
- log_errors 和 error_log 一起工作将错误发送到日志文件。在生产中执行此操作而不是将它们显示给最终用户。
PHP manual 更详细地说明了这些设置,并提供了更多我可以放入本节的信息。但即使使用最好的日志记录设置,您仍然需要监视错误。
监控错误日志
记录错误是一回事——这几乎是既定的。在记录错误时采取行动是另一回事。首先,您必须了解错误。除非你整天整夜都在日志上徘徊,否则你不会知道什么时候发生了不好的事情!
您能做的最好的事情是 send your PHP logs to a service,它将为您处理一些关键的事情:
- 日志聚合您想在一个地方查看所有日志。如果您可以跨实例集中您的日志和指标,那就更好了!无论哪里发生问题,您都能发现问题。
- 警报 没有什么比自动化更好的了。如果你是一名程序员,你就会明白我的意思!如果可以的话,你会想要自动化几乎任何事情。警报是一种在出现问题时自动向群组电子邮件发送警报的方法(连续性优于个人电子邮件)。这可能是服务器问题或日志错误。它应该是可配置的,并且您应该可以控制配置。
- 日志中的痕迹什么是痕迹?它不仅仅是一个堆栈转储,可让您了解发生错误时发生了什么。这也是一种跟踪性能的方法,这通常是错误的标志或原因。
- 日志条目的重复数据删除 当错误导致错误时,它会很快填满日志。只需将日志与成百上千个相同的条目进行梳理就可以了。重复数据删除消除了痛苦!
单步执行代码
现在我们将通过单步执行代码来讨论调试。这就是我们许多开发人员在看到“调试”时所想到的。这是调试代码(删除导致错误的缺陷)的常用方法。对于 Web 应用程序或网站,调试通常是双管齐下的。
一旦收到有关已记录错误的通知,我们就可以根据需要进行调试。如果日志中有足够的详细信息,这应该很容易。我们甚至可能不必使用调试器。通常,使用越少越好。但如果你这样做了,这里是解决方法!
PHP 调试工具
您可以使用众多调试工具之一来调试 PHP 以附加调试器客户端。 PhpStorm 使用 Xdebug and ZendDebugger.
等调试实用程序
调试服务器设置相同,但每个客户端(IDE 或 CLI)的设置略有不同。看,调试服务器(一个 Zend 扩展)打开一个端口,客户端通过该端口与服务器通信。这只是配置和安装正确组件的问题。
希望对您有所帮助。
我想调试 PHP 代码,看看在集成中处理的数据发生了什么。
调试此 .php 文件的最简单方法是什么(不使用复杂的功能 Magento/ZendDesk/Plugins 环境设置)??
我想是这样的:
- 在输出 .log 文件的代码中设置调试点
- 设置可以在 Chrome 开发工具中看到的警报
谢谢
输出值
当您需要一种简单的方法来调试程序并且没有其他选择时,您通常可以输出值。有时这意味着执行 var_dump 或记录整个事件系列。
在您的程序中进行调试日志记录很有用。在 PHP 中,您可以使用各种记录器来记录调试消息。当程序 运行 处于调试模式或日志级别设置为调试时,这些消息将最终出现在您的标准输出、标准错误或日志文件中。在“调试模式”下,日志会很快填满,因此您只想暂时打开它。但我在这里超前了。让我备份一些简单的输出值的方法。 将变量转储到标准输出
var_dump 函数是一种查看 PHP 程序中发生的情况的方法。它会将变量值转储到标准输出。您还可以使用其他功能通过输出进行调试。以下是一些内容以及它们将如何帮助您:
- var_dump ($var)) 将变量类型和值转储到标准输出。
- print_r ($var) 将变量值以人类可读的形式打印到标准输出。
- get_defined_vars() 获取所有定义的变量,包括内置变量和自定义变量(print_r 查看它们)。
- debug_zval_dump ($var) 转储变量及其引用计数。当有多个路径更新单个引用时,这很有用。
- debug_print_backtrace() 打印显示当前函数调用链的回溯。
- debug_backtrace() 获取回溯。您可以 print_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 代码的快捷方式。每个函数都有一个用途,可用于调试。
- error_reporting 设置日志级别。 E_NOTICE 在开发过程中很有用,因为它会告诉您有关未分配变量等缺陷的信息。
- display_errors 告诉 PHP 是否以及在何处显示错误消息。
- display_startup_errors 只应在调试时使用。
- log_errors 和 error_log 一起工作将错误发送到日志文件。在生产中执行此操作而不是将它们显示给最终用户。
PHP manual 更详细地说明了这些设置,并提供了更多我可以放入本节的信息。但即使使用最好的日志记录设置,您仍然需要监视错误。
监控错误日志
记录错误是一回事——这几乎是既定的。在记录错误时采取行动是另一回事。首先,您必须了解错误。除非你整天整夜都在日志上徘徊,否则你不会知道什么时候发生了不好的事情!
您能做的最好的事情是 send your PHP logs to a service,它将为您处理一些关键的事情:
- 日志聚合您想在一个地方查看所有日志。如果您可以跨实例集中您的日志和指标,那就更好了!无论哪里发生问题,您都能发现问题。
- 警报 没有什么比自动化更好的了。如果你是一名程序员,你就会明白我的意思!如果可以的话,你会想要自动化几乎任何事情。警报是一种在出现问题时自动向群组电子邮件发送警报的方法(连续性优于个人电子邮件)。这可能是服务器问题或日志错误。它应该是可配置的,并且您应该可以控制配置。
- 日志中的痕迹什么是痕迹?它不仅仅是一个堆栈转储,可让您了解发生错误时发生了什么。这也是一种跟踪性能的方法,这通常是错误的标志或原因。
- 日志条目的重复数据删除 当错误导致错误时,它会很快填满日志。只需将日志与成百上千个相同的条目进行梳理就可以了。重复数据删除消除了痛苦!
单步执行代码
现在我们将通过单步执行代码来讨论调试。这就是我们许多开发人员在看到“调试”时所想到的。这是调试代码(删除导致错误的缺陷)的常用方法。对于 Web 应用程序或网站,调试通常是双管齐下的。
一旦收到有关已记录错误的通知,我们就可以根据需要进行调试。如果日志中有足够的详细信息,这应该很容易。我们甚至可能不必使用调试器。通常,使用越少越好。但如果你这样做了,这里是解决方法!
PHP 调试工具
您可以使用众多调试工具之一来调试 PHP 以附加调试器客户端。 PhpStorm 使用 Xdebug and ZendDebugger.
等调试实用程序调试服务器设置相同,但每个客户端(IDE 或 CLI)的设置略有不同。看,调试服务器(一个 Zend 扩展)打开一个端口,客户端通过该端口与服务器通信。这只是配置和安装正确组件的问题。
希望对您有所帮助。