在我的应用程序日志文件夹中,我多次看到以下错误日志,为什么会出现这个日志,我想知道在什么情况下会出现这个日志。
WARNING deprecated JRegistry::getValue() is deprecated. Use get instead
我了解,函数 getValue() 在 2.5.14 中被删除。
我想知道,这个错误日志是在什么情况下发生的。
这很简单——当在代码中使用 JRegistry::getValue() 时添加了这个日志条目。例如考虑这部分代码:
$registry = new JRegistry;
$value = $registry->getValue('myVal');
使用$registry->getValue('myVal');
将添加这样的日志条目。开发人员应该改用这个:
$value = $registry->get('myVal');
希望你现在清楚了。
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 似乎无法配置将堆栈跟踪添加到日志中。