«
php基类 调试类 错误类

时间:2008-5-31    作者:Deri    分类: 分享


   <p>  <code><?php<br />//<br />// +----------------------------------------------------------------------+<br />// | WHXBB     基类                         |<br />// +----------------------------------------------------------------------+<br />// | Copyright (c) 2001 NetFish Software                 |<br />// |                                   |<br />// | Author: whxbb(<a href="mailto:whxbb@21cn.com">whxbb@21cn.com</a>)                    |<br />// +----------------------------------------------------------------------+<br />//<br />// $Id: whxbb.class.php,v 0.1 2001/8/4 12:53:33 yf Exp $<br />//<br />// 禁止直接访问该页面<br />if (basename($HTTP_SERVER_VARS['PHP_SELF']) == "whxbb.class.php") {<br />  header("HTTP/1.0 404 Not Found");<br />}<br />// 调试标志,为1时,系统运行在调试状态<br />define('WHXBB_DEBUG_FLAG', 0);<br />// 出错代码的预定义<br />// 忽略错误<br />define('WHXBB_ERROR_IGNORE', 1);<br />// 在页面显示错误<br />define('WHXBB_ERROR_ECHO' , 2);<br />// 弹出错误警告并显示错误<br />define('WHXBB_ERROR_ALERT' , 4);<br />// 停止程序的运行<br />define('WHXBB_ERROR_DIE' &#160;, 8);<br />// 返回上页<br />define('WHXBB_ERROR_RETURN', 16);<br />// 跳到指定页<br />define('WHXBB_ERROR_GOTO', 32);<br />/**<br />* Purpose<br />* 基类, 在该类中封装了一些常用的方法<br />*<br />* @author : whxbb(<a href="mailto:whxbb@21cn.com">whxbb@21cn.com</a>)<br />* @version : 0.1<br />* @date  : 2001/12/4<br />*/<br />class WHXBB<br />{<br />  /**<br />  &#160;* 调试标志<br />  &#160;* @access protected<br />  &#160;*/<br />  var $_debug;<br />  /**<br />  &#160;* 数据库连接标志<br />  &#160;* @access protect<br />  &#160;*/<br />  var $_conn;<br />  function WHXBB()<br />  {<br /> // 数据库连接标志<br />    global $_conn;<br />    if (!is_resource($conn))<br />      die("数据库连接错误");<br />    $this->_conn = $conn;<br />    $this->_debug = WHXBB_DEBUG_FLAG;<br />  }<br />  /**<br />  &#160;* 处理字符串<br />  &#160;* @param $str 要处理的字符串<br />  &#160;* @param $act in 将'替换成\’out 把\’替换成'<br /> * @access public<br />  &#160;*/<br />  function OperateString(&$str, $act)<br />  {<br />    if($act == 'in')<br />      $str = str_replace("'", "\\’", $str);<br />    if($act == 'out')<br />      $str = str_replace("\\’", "'", $str);<br />  }<br />  /**<br />  &#160;* 判断一个变量是否为错误对象<br />  &#160;*<br />  &#160;* @param &#160;$data &#160;要判断的变量<br />  &#160;* @access public<br />  &#160;* @return bool  是 true 不是 false<br />  &#160;*/<br />  function isError($data) {<br />    return (bool)(is_object($data) &&<br />           (get_class($data) == "whxbb_error" ||<br />           &#160;is_subclass_of($data, "whxbb_error")));<br />  }<br />  /**<br />  &#160;* 判断一个变量是否为分页对象<br />  &#160;*<br />  &#160;* @param &#160;$data &#160;the value to test<br />  &#160;* @access public<br />  &#160;* @return bool  true if $data is an Pager<br />  &#160;*/<br />  function isPager($data) {<br />    return (bool)(is_object($data) &&<br />           (get_class($data) == "pager" ||<br />           &#160;is_subclass_of($data, "pager")));<br />  }<br />}<br />/**<br />* 调试类<br />*<br />* Purpose<br />*<br />* 程序调试用<br />*<br />* @author : wxhbb(<a href="mailto:whxbb@21cn.com">whxbb@21cn.com</a>)<br />* @version : 0.1<br />* @date  : 2001/8/4<br />*/<br />class WHXBB_Debug Extends WHXBB<br />{<br />  function WHXBB_Debug($msg)<br />  {<br />    $this->WHXBB();<br />    if($this->_debug == 1)<br />    {<br />      echo "\n<br>WHXBB Debug >>> $msg<br>\n";<br />    } &#160;<br />  }<br />}<br />/**<br />* Purpose<br />* 错误处理(触发错误,显示错误)<br />*<br />* @author : whxbb(<a href="mailto:whxbb@21cn.com">whxbb@21cn.com</a>)<br />* @version : 0.1<br />* @date  : 2001/8/4<br />*/<br />class WHXBB_Error extends WHXBB<br />{<br />  /**<br />  &#160;* 错误信息<br />  &#160;* @access protected<br />  &#160;*/<br />  var $_errNo;<br />  /**<br />  &#160;* 错误代码<br />  &#160;* @access protected<br />  &#160;*/<br />  var $_errMsg;<br />  /** 报错方式 参见"出错代码的预定义" */<br />  var $_reportMethod;<br />  /**<br />  &#160;* 构造一个错误对象<br />  &#160;* @param $errMsg &#160;错误信息, 错误的字符描述<br />  &#160;* @param $errNo  错误代码, 错误的代码<br />  &#160;* @param $reportMethod 报错方式,参见"出错代码的预定义"<br />  &#160;* @param $param1 参数一,如跳转到指定页面时页面的url<br />  &#160;* @param $param2 参数二 保留<br />  &#160;* @access public<br />  &#160;*/<br />  function WHXBB_Error($errMsg, $errNo, $reportMethod = WHXBB_ERROR_IGNORE, $param1 = '', $param2 = '')<br />  {<br />    $this->WHXBB();<br />    $this->_errMsg = $errMsg;<br />    $this->_errNo = $errNo;<br />    $this->_reportMethod = $reportMethod;<br />    switch($reportMethod)<br />    {<br />      case WHXBB_ERROR_IGNORE:<br />        break;<br />      case WHXBB_ERROR_ECHO:<br />        echo $errMsg;<br />        break;<br />      case WHXBB_ERROR_ALERT:<br />        JS::Alert($errMsg);<br />        break;<br />      case WHXBB_ERROR_DIE:<br />        $this->Close();<br />        exit;<br />        break;<br />      case WHXBB_ERROR_DIE + WHXBB_ERROR_ALERT:<br />        JS::Alert($errMsg);<br />        $this->Close();<br />        exit;<br />        break;<br />      case WHXBB_ERROR_DIE + WHXBB_ERROR_ECHO:<br />        echo $errMsg;<br />        $this->Close();<br />        exit;<br />        break;<br />      case WHXBB_ERROR_ALERT + WHXBB_ERROR_RETURN:<br />        JS::ALert($errMsg);<br />        JS::Back();<br />        break;<br />      case WHXBB_ERROR_RETURN:<br />        JS::Back();<br />        break;<br />      case WHXBB_ERROR_GOTO:<br />        JS::Goto($param1);<br />        break;<br />      case WHXBB_ERROR_GOTO + WHXBB_ERROR_ALERT:<br />        JS::ALert($errMsg);<br />        JS::Goto($param1);<br />        break;<br />    }<br />    new WHXBB_Debug($errNo.":".$errMsg);<br />  }<br />  /**<br />  &#160;* 得到错误对象的错误信息<br />  &#160;*/<br />  function GetMsg()<br />  {<br />    return $this->_errMsg;<br />  }<br />  /**<br />  &#160;* 得到错误对象的错误代买<br />  &#160;*/<br />  function GetNo()<br />  {<br />    return $this->_errNo;<br />  }<br />}<br />?></code></p>