XOOPS Cube Legacy2.1 BetaのXoopsErrorHandler
少し時間がたちますけど、GIJOEさんの記事、「Cube2.1betaをデバッグする前に」で、XoopsErrorHandlerの復活について書かれていましたが・・・・
引用:
このあたり、エラーハンドラの有効無効を選択式にする、という話をminahitoさんから聞いていたような気もするのですが、ぱっと見で一般設定には見つからないので・・・・・
この部分、minaitoさんの意図はXOOPS Cube Legacy2.1から、デバッグマネージャの初期化がDelegateによって実装されたこともあって、preloadで換装できますという意味だと思います。
ということでpreloadの実装サンプルです。
/preload/DisableErrorHandler.class.phpというファイル名で、
<?php
class DisableErrorHandler extends XCube_ActionFilter
{
function preFilter() {
$this->mController->mSetupDebugger->reset();
$this->mController->mSetupDebugger->add('My_DebuggerManager::createInstance');
}
}
class My_DebuggerManager extends Legacy_DebuggerManager
{
function createInstance(&$instance, $debug_mode)
{
if (is_object($instance)) {
return;
}
switch($debug_mode) {
case XOOPS_DEBUG_PHP:
$instance = new My_PHPDebugger();
break;
case XOOPS_DEBUG_MYSQL:
$instance = new My_MysqlDebugger();
break;
case XOOPS_DEBUG_SMARTY:
$instance = new My_SmartyDebugger();
break;
case XOOPS_DEBUG_OFF:
default:
$instance = new Legacy_NonDebugger();
break;
}
}
}
class My_PHPDebugger extends Legacy_PHPDebugger
{
function prepare()
{
error_reporting(E_ALL);
$GLOBALS['xoopsErrorHandler'] = null;
}
}
class My_MysqlDebugger extends Legacy_MysqlDebugger
{
function prepare()
{
$GLOBALS['xoopsErrorHandler'] = null;
}
}
class My_SmartyDebugger extends Legacy_SmartyDebugger
{
function prepare()
{
$GLOBALS['xoopsErrorHandler'] = null;
}
}
?>
という内容でpreloadを作成すると、xoopsErrorHandlerをすべて無効にすることができます。
コメント
コメントの投稿
ごめんなさい、現在コメントを付けることは出来ません
すみません・・・・
ほとんど同じ投稿をとっくの昔に、 How to prevent XoopsErrorHandlerに書かれていたのですね!
Comment by nobunobu — 2006年11月12日(日曜日) @ 11時18分46秒