First of all, read GIJOE's entry. Some libraries XOOPS2 uses and some modules raise notices and warnings. They interfere Legacy's working. After much soul-searching, I decided to put XoopsErrorHandler again. But, wort around is here. Legacy_Controller came to use Delegate to create the debugger instance. Therefore, module developers and users can use custom-debug mode through preload or module preload. The following code is an example. Create 'preload/DevelopPHPDebugger.class.php' file, and copy the following code.
if (!defined('XOOPS_ROOT_PATH')) exit();
require_once XOOPS_ROOT_PATH . "/modules/legacy/class/Legacy_Debugger.class.php";
class DevelopPHPDebugger extends XCube_ActionFilter
{
 function preFilter()
 {
   $this->mController->mSetupDebugger->add("DevelopPHPDebugger::myFactory");
 }
 function myFactory(&$instance, $debug_mode)
 {
   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);
 }
}
class My_MysqlDebugger extends Legacy_MysqlDebugger
{
 function prepare()
 {
 }
}
class My_SmartyDebugger extends Legacy_SmartyDebugger
{
 function prepare()
 {
 }
}
 

No comments:
Post a Comment