调试程序及其它

Source:phpbone.com  Author:IT柏拉图
2013-11-20

一、Debug接口的处理
在bone.php文件中,调试接口处理的主要是下面代码:

  1. //debug设置 
  2.     if( in_array( util::get_client_ip(), $GLOBALS['config']['safe_client_ip']) ) { 
  3.         $_debug_safe_ip = true; 
  4.     } else { 
  5.         $_debug_safe_ip = false; 
  6.     } 
  7.     require PATH_LIBRARY.'/debug/lib_debug.php'
  8.     if$_debug_safe_ip || DEBUG_MODE === true ) 
  9.     { 
  10.         ini_set('display_errors''On'); 
  11.     } 
  12.     else 
  13.     { 
  14.         ini_set('display_errors''Off'); 
  15.     } 
  16.     set_exception_handler('handler_debug_exception'); 
  17.     set_error_handler('handler_debug_error', E_ALL); 

Debug程序是通过

  • set_exception_handler('handler_debug_exception'); 
  • set_error_handler('handler_debug_error', E_ALL);

对系统的debug信息进行了接管(接口函数定义在 core/library/debug/lib_debug.php ), 除了支持基本的调试外,也支持使用xhprof进行性能调试

二、性能调试xhprof的输出:
    在服务器装有xhprof扩展的情况下,debug模式在网页最底下会输出xhprof调试的链接,如果你需要屏幕,或针对特定IP才输出,可以修改 tpl::display 里的下面代码:

  1. if( PHP_SAPI !== 'cli' && !bone::$is_ajax ) { 
  2.     debug_hanlde_xhprof(); 

 三、session托管接口
    core/session.php 分两种情况,一种是使用memcache的情况,仅是修改php参数,不会对session接口重写,另一种情况是使用文件hash缓存(如果单服务器运 行的程序,这种模式会更稳定),接口进行了重写,考虑性能原因,默认并没有初始化缓存,如果需要使用session,还是需要用户自行在使用前用 @session_start() 初始化,对于需要权限验证的入口,也可以配置文件里指定。
 

分享到: