在我的应用程序日志文件夹中,我多次看到以下错误日志,为什么会出现此日志,我想知道,在哪种情况下会发生此日志。
WARNING deprecated JRegistry::getValue() is deprecated. Use get instead
据我所知,函数getValue()在2.5.14中已经过了。
我想知道,在哪种情况下会出现此错误日志。
答案 0 :(得分:2)
这很简单 - 在代码中使用JRegistry :: getValue()时会添加此日志条目。例如,考虑这部分代码:
$registry = new JRegistry;
$value = $registry->getValue('myVal');
使用$registry->getValue('myVal');
将添加此类日志条目。开发人员应该使用它:
$value = $registry->get('myVal');
希望现在对你很清楚。
答案 1 :(得分:0)
Joomla日志提供警告,但不是它的来源(“违规”功能)。
错误由JRegistry类产生,位于:
libraries/joomla/registry/registry.php:583
。
你可以做几件事之一,大多数事情都很明显:
‑>getValue(
,可能使用正则表达式。这不是最优的,因为其他类也有getValue()
方法。如果由于执行了某个操作而导致错误出现在日志中,则可以在代码中设置断点,启动调试会话并轻松捕获使用此函数的函数。
更改产生错误的代码以包含调用函数。这可以帮助您识别罪魁祸首,但它涉及编辑核心文件,因此请谨慎使用并将其视为临时修复。一旦发现问题,您可以将文件还原为其原始状态。做类似的事情:
$caller = array_shift(debug_backtrace());
$data = $caller['file'].':'$caller['line'];
JLog::add('JRegistry::getValue() is deprecated. Use get instead. At: '.$data, JLog::WARNING, 'deprecated');
我确实想知道为什么Joomla似乎没有能力配置将堆栈跟踪添加到日志中。