调试 PHP 代码是任何项目的一部分,但GeChiUI附带特定的调试系统,旨在简化流程以及跨核心、插件和主题标准化代码。本页介绍了GeChiUI中的各种调试工具,以及如何提高编码效率以及提高代码的整体质量和互操作性。
对于非程序员或普通用户,这些选项可用于显示有关错误的详细信息。
用于调试的示例 gc-config.php
以下代码插入到您的 gc-config.php文件中,会将所有错误、通知和警告记录到 gc-content 目录中名为 debug.log 的文件中。它还将隐藏错误,因此它们不会中断页面生成。
// Enable GC_DEBUG mode define( 'GC_DEBUG', true ); // Enable Debug logging to the /gc-content/debug.log file define( 'GC_DEBUG_LOG', true ); // Disable display of errors and warnings define( 'GC_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 ); // Use dev versions of core JS and CSS files (only needed if you are modifying these core files) define( 'SCRIPT_DEBUG', true );
注意:您必须在gc-config.php文件中插入这个BEFORE 。 /* That's all, stop editing! Happy blogging. */
GC_DEBUG
GC_DEBUG
是一个 PHP 常量(一个永久全局变量),可用于触发整个GeChiUI的“调试”模式。默认情况下假定为 false,通常在GeChiUI开发副本的gc-config.php文件中设置为 true。
// 启用调试 define( 'GC_DEBUG', true );
// 禁用调试 define( 'GC_DEBUG', false );
注意:示例中的true
andfalse
值没有被撇号 (‘) 包围,因为它们是布尔值(真/假)。如果将常量设置为'false'
,它们将被解释为 true,因为引号使其成为字符串而不是布尔值。
不建议GC_DEBUG
在现场使用或其他调试工具;它们用于本地测试和分期安装。
PHP 错误、警告和注意事项
启用GC_DEBUG
将导致显示所有 PHP 错误、通知和警告。这可能会修改 PHP 的默认行为,该行为仅显示致命错误和/或在遇到错误时显示白屏死机。
显示所有 PHP 通知和警告通常会导致错误消息显示似乎没有损坏,但未遵循 PHP 内部正确的数据验证约定。一旦识别出相关代码,这些警告就很容易修复,并且生成的代码几乎总是更能抵抗错误并且更容易维护。
不推荐使用的函数和参数
启用GC_DEBUG
还会引起有关您网站上正在使用的GeChiUI中已弃用的函数和参数的通知。这些是尚未从核心代码中删除但计划在不久的将来删除的函数或函数参数。弃用通知通常指示应该使用的新功能。
GC_DEBUG_LOG
GC_DEBUG_LOG
是 GC_DEBUG 的伴侣,它会导致所有错误也被保存到 debug.log 日志文件中,如果您想稍后查看所有通知或需要查看界面外生成的通知(例如在 AJAX 请求或 gc-cron 期间),这将非常有用跑)。
请注意,这允许您使用 PHP 的内置函数写入日志文件error_log()
,这在调试 Ajax 事件时很有用。
设置为true
时,日志将保存到站点文件系统内debug.log
的内容目录(通常为)中。gc-content/debug.log
或者,您可以将其设置为有效的文件路径,以将文件保存在其他位置。
define( 'GC_DEBUG_LOG', true ); -或者- define( 'GC_DEBUG_LOG', '/tmp/gc-errors.log' );
注意:为了GC_DEBUG_LOG
做任何事情,GC_DEBUG
必须启用(true)。请记住,您可以独立关闭GC_DEBUG_DISPLAY
。
GC_DEBUG_DISPLAY
GC_DEBUG_DISPLAY
是另一个GC_DEBUG
控制调试消息是否显示在页面 HTML 中的伴侣。默认值为“true”,它会在生成错误和警告时显示它们。将此设置为 false 将隐藏所有错误。这应该与 结合使用,GC_DEBUG_LOG
以便以后可以查看错误。
define( 'GC_DEBUG_DISPLAY', false );
注意:为了GC_DEBUG_DISPLAY
做任何事情,GC_DEBUG
必须启用(true)。请记住,您可以GC_DEBUG_LOG
独立控制。
脚本调试
SCRIPT_DEBUG
是一个相关的常量,它将强制GeChiUI使用核心 CSS 和 JavaScript 文件的“开发”版本,而不是通常加载的缩小版本。当您测试对任何内置 .js 或 .css 文件的修改时,这很有用。默认为假。
define( 'SCRIPT_DEBUG', true );
保存查询
该SAVEQUERIES
定义将数据库查询保存到一个数组中,并且可以显示该数组以帮助分析这些查询。定义为 true 的常量会导致保存每个查询、该查询执行多长时间以及调用它的函数。
define( 'SAVEQUERIES', true );
该数组存储在全局$gcdb->queries
.
注意:这将对您的站点产生性能影响,因此请确保在不调试时将其关闭。
调试插件
有许多GeChiUI的调试插件可以显示有关内部的更多信息,无论是针对特定组件还是一般。这里有些例子: