1

在我的模块代码中,我回显了一个未定义的变量:

echo $doesnotexist;

我在index.php中完成了以下操作:

error_reporting(E_ALL);
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);

执行代码时,此组合显示“哎呀,我们的坏...” 404 类型页面。在exception.log中有一个通知(“未定义变量:donotexist ”)以及一个堆栈跟踪。

如果我删除index.php中的部分说明:

error_reporting(E_ALL);
//Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);

前端正常显示页面,没有任何错误提示,并将错误记录到system.log

现在我的问题是:有没有办法将这些通知/错误直接输出到前端?还是我应该在编码时始终保持打开system.logexception.log的副本?

4

2 回答 2

1

Magento 通常使用 zend 异常/错误处理类进行错误和异常处理。因此,对于日志中记录 magento 代码发送异常的错误。但是,如果 magento 无法捕获该错误,那么它将打印在您的页面上。

您可以在 2 种情况下在前端获取错误:

  1. 如果您正在创建自己的 magento 扩展,那么您可以抛出错误,以便它可以显示在 magento 页面上
  2. 如果您正在处理 .phtml 文件并遇到致命错误
于 2013-03-30T15:41:08.947 回答
0
  1. 出于安全考虑,错误和警告不应显示在前端。

  2. 如果有异常或者你做了一些系统日志,你将能够从 system.log 或 exception.log 中得到它

  3. 对于 PHP 错误,您应该参考在站点级别生成的错误日志文件。

  4. 法师::setIsDeveloperMode(true); 只有在包含 Mage.php 后才能使用,因此请粘贴完整的 index.php 代码

于 2013-03-30T19:56:16.467 回答