如何在 CakePHP 中将 PHP 错误和 SQL 日志记录到 Chrome 控制台

当你开发一个使用大量 JSON 响应的 XHR 重量级应用程序时,PHP 错误可能很烦人。这些错误的可读性很差。所以今天我终于决定在工作中在我们自己的应用程序中实现 ChromeLogger。这是我从 FireFox 和其出色的插件 FirePHP 转移后一直缺少的东西。

首先安装 ChromeLogger

设置 Chrome Logger 和错误处理

安装 Chrome 插件后,你需要将相关的服务器端库添加到 app/Vendor/ChromePhp/ChromePhp.php。接下来,在你的 CakePHP 2 项目中创建一个新文件来处理错误。在 app/Lib/AppError.php 创建一个新类,并添加以下代码。

App::import('Vendor', 'ChromePhp/ChromePhp');
//in app/Lib/AppError.php
class AppError {
    public static function handleError($code, $description, $file = null, $line = null, $context = null) {
        ChromePhp::error('PHP Error Code '.$code.': '.$description.' '.$file.':'.$line);
    }
}

接下来,根据以下步骤调整你的 core.php 和 bootstrap.php 文件。

在 core.php 中

 'AppError::handleError',
    'level' => E_ALL & ~E_DEPRECATED,
    'trace' => true
));

在 bootstrap.php 中

App::uses('AppError', 'Lib');

完成了!有关 AppError 的更多信息,请查看 CakePHP2 文档。

为 SQL 日志设置 Chrome Logger

由于我们如今编写的大多数应用程序都是 XHR 重量级应用程序,CakePHP 附带的标准 SQL 日志变得无用。如果你像我一样痴迷于优化查询,你可能希望将所有查询都记录到 Chrome 控制台。要将此功能添加到你的应用程序,请打开你的 AppController,并在 afterFilter 中添加以下内容

现在,只需在想要查看导出到 Chrome 控制台的查询时设置 Configure::write('debug', 2)。你会注意到,我将所有花费超过 100 毫秒的查询设置为警告,其他所有查询设置为信息。查看 我的博客以获取更多 CakePHP 教程