Simple MediaWiki扩展调试

问题描述 投票:4回答:2

我正在尝试编写我的第一个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)。

是正确的做法(然后是什么错误),还是有更好/更简单的方法开始?

debugging mediawiki
2个回答
2
投票

500表示您在某处语法错误或配置错误。您是否已按照Manual:How to debug的说明进行操作并打开了PHP日志记录,所以至少可以看到导致此错误的原因是什么?另外,请查看您的Apache服务器日志。

此外,您将要打开调试之前,您将加载自己的扩展程序!


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了解更多信息

© www.soinside.com 2019 - 2024. All rights reserved.