我正在尝试编写我的第一个MediaWiki扩展,并且需要某种方式对其进行调试。最简单的方法是什么?显示消息,登录文件等都可以。我只想慢慢地遍历代码,看看它在哪里中断以及变量的内容是什么。
我已经尝试过(来自http://www.mediawiki.org/wiki/Manual:How_to_debug#Useful_debugging_functions)
// ...somewhere in your code
if ( true ) {
wfDebugLog( 'myext', 'Something is not right: ' . print_r( 'asdf', true ) );
}
在extensions / myext / myext.php中并添加到LocalSettings.php中
require_once( 'extensions/myext/myext.php' );
# debugging on
$wgDebugLogGroups = array(
'myext' => 'extensions/myext/myextension.log'
);
但是我的Wiki根本不起作用(错误500)。从myext.php中删除上述代码后,一切都很好(在myext.php中有$ wgExtensionCredits,我可以在Special:Version中看到myext)。
是正确的做法(然后是什么错误),还是有更好/更简单的方法开始?
500表示您在某处语法错误或配置错误。您是否已按照Manual:How to debug的说明进行操作并打开了PHP日志记录,所以至少可以看到导致此错误的原因是什么?另外,请查看您的Apache服务器日志。
此外,您将要打开调试之前,您将加载自己的扩展程序!
将它们添加到LocalSettings.php
进行调试:
error_reporting( -1 );
ini_set( 'display_startup_errors', 1 );
ini_set( 'display_errors', 1 );
$wgShowExceptionDetails=true;
$wgDebugToolbar=true;
$wgShowDebug=true;
$wgDevelopmentWarnings=true;
$wgDebugDumpSql = true;
$wgDebugLogFile = '/tmp/debug.log';
$wgDebugComments = true;
$wgEnableParserCache = false;
$wgCachePages = false;
您可以使用wfDebug();
记录调试消息
在https://www.mediawiki.org/wiki/Manual:Structured_logging/en了解更多信息