init.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. use KIF\String\String;
  3. if (PHP_VERSION < '5.3.0') {
  4. echo 'PHP VERSION MUST > 5.3.0';
  5. exit;
  6. }
  7. if (!defined('DS')) {
  8. define('DS', DIRECTORY_SEPARATOR);
  9. }
  10. if (!defined('KIF_PATH')) {
  11. define('KIF_PATH', dirname(__FILE__));
  12. }
  13. if (!defined('KIF_DEBUG_PASS')) {
  14. define('KIF_DEBUG_PASS', 'rabin');
  15. }
  16. if (!defined('KIF_ERROR_LEVEL')) {
  17. define('KIF_ERROR_LEVEL', E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_WARNING);
  18. }
  19. /**
  20. *
  21. * 获取用于标识主库写入成功的cookie key
  22. * # 定义常量,用于标识主数据库有写入操作。值为MASTER_DB_HAS_WRITE md5 16位后的值,避免明文被有心人猜测
  23. * # 使用场景,MySQLite类执行写入语句成功时,会给该常量为key写一个cookie。当php页面读到该cookie时,会把查询的sql强制走主库
  24. * # 使用场景2,当varnish获取到该key的cookies时,强制将用户请求pass到后端
  25. * @return string
  26. */
  27. if (!defined('KIF_MASTER_DB_HAS_WRITE_COOKIE_KEY')) {
  28. define('KIF_MASTER_DB_HAS_WRITE_COOKIE_KEY', '17439a6561e7666b');
  29. }
  30. require_once KIF_PATH . DS . 'Core/Core.class.php';
  31. spl_autoload_register(array('KIF\Core\Core', 'autoload'));
  32. # 包含定义的框架级常量
  33. require_once KIF_PATH . DS . 'global_constants.php';
  34. # 默认将显示错误关闭
  35. ini_set('display_errors', false);
  36. # 设置默认时区
  37. date_default_timezone_set('PRC');
  38. #############################################
  39. if (get_magic_quotes_runtime()) {//表示系统自动将数据库读入或文件读入的数据添加转义
  40. set_magic_quotes_runtime(0);//不做这步,由应用来管理
  41. }
  42. # 外部输入的数据,不需要转义。由应用自行处理即可!
  43. if (get_magic_quotes_gpc()) {//系统开启了进站数据转义
  44. foreach (array('_GET', '_POST', '_FILES', '_COOKIE', '_REQUEST') as $_v) {
  45. $$_v = String::stripslashes($$_v);
  46. }
  47. }
  48. #############################################
  49. if (isset($_REQUEST['debug']) && $_REQUEST['debug'] == KIF_DEBUG_PASS) {
  50. # Debug模式将错误打开
  51. ini_set('display_errors', true);
  52. # 设置错误级别
  53. error_reporting(KIF_ERROR_LEVEL);
  54. //开启ob函数
  55. ob_start();
  56. KIF\Debug\Debug::start();
  57. register_shutdown_function(array('KIF\Debug\Debug', 'show'));
  58. }