我正在尝试编写我的第一个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)。
这是正确的事情(然后是什么错误)还是有更好/更简单的方式开始?
答案 0 :(得分:2)
500表示您在某处出现语法错误或配置错误。您是否按照Manual:How to debug上的说明开启了PHP日志记录,因此您至少可以看到导致错误的原因?或者,查看您的Apache服务器日志。
此外,您需要在加载自己的扩展程序之前打开调试!
答案 1 :(得分:0)
将它们添加到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
了解更多信息