Qii.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. /**
  3. * Qii 框架基本库所在路径
  4. */
  5. define('Qii_DIR', dirname(__FILE__));
  6. /**
  7. * DIRECTORY_SEPARATOR 的简写
  8. */
  9. define('DS', DIRECTORY_SEPARATOR);
  10. /**
  11. * 定义包含的路径分隔符
  12. */
  13. define('PS', PATH_SEPARATOR);
  14. /**
  15. * 定义操作系统类型
  16. */
  17. define('OS', strtoupper(substr(PHP_OS, 0, 3)));
  18. define('IS_CLI', php_sapi_name() == 'cli' ? true : false);
  19. require Qii_DIR . DS . 'Autoloader' . DS . 'Import.php';
  20. \Qii\Autoloader\Import::setFileLoaded(Qii_DIR . DS . 'Autoloader' . DS . 'Import.php');
  21. \Qii\Autoloader\Import::requires(array(Qii_DIR . DS .'Consts'. DS . 'Config.php',
  22. Qii_DIR . DS .'Autoloader'. DS . 'Factory.php',
  23. Qii_DIR . DS . 'Application.php',
  24. Qii_DIR . DS .'Autoloader'. DS . 'Psr4.php',
  25. Qii_DIR . DS .'Config'. DS . 'Arrays.php',
  26. )
  27. );
  28. use \Qii\Autoloader;
  29. use \Qii\Application;
  30. class Qii extends Application
  31. {
  32. public static function i()
  33. {
  34. return call_user_func_array(array(
  35. \Qii\Autoloader\Psr4::getInstance()->loadClass('\Qii\Language\Loader'), 'i'),
  36. func_get_args()
  37. );
  38. }
  39. /**
  40. * 抛出异常
  41. *
  42. * @return mixed
  43. */
  44. public static function e()
  45. {
  46. return call_user_func_array(array('\Qii\Exceptions\Errors', 'e'), func_get_args());
  47. }
  48. }
  49. \Qii\Autoloader\Psr4::getInstance()
  50. ->register()
  51. ->setUseNamespace('Qii\\', true)
  52. ->setUseNamespace('Qii\Action', true)
  53. ->setUseNamespace('Qii\Autoloader', true)
  54. ->setUseNamespace('Qii\Bootstrap', true)
  55. ->setUseNamespace('Qii\Config', true)
  56. ->setUseNamespace('Qii\Consts', true)
  57. ->setUseNamespace('Qii\Controller', true)
  58. ->setUseNamespace('Qii\Exceptions', true)
  59. ->setUseNamespace('Qii\Language', true)
  60. ->setUseNamespace('Qii\Library', true)
  61. ->setUseNamespace('Qii\Loger', true)
  62. ->setUseNamespace('Qii\Plugin', true)
  63. ->setUseNamespace('Qii\Request', false)
  64. ->setUseNamespace('Qii\Route', true)
  65. ->setUseNamespace('Qii\View', true)
  66. ->setUseNamespace('Smarty\\', false)
  67. ->setUseNamespace('Smarty\\Internal', false);
  68. ;
  69. \Qii\Autoloader\Psr4::getInstance()
  70. ->addNamespace('Qii\\', Qii_DIR . DS)
  71. ->addNamespace('Qii\Action', Qii_DIR . DS . 'Action')
  72. ->addNamespace('Qii\Autoloader', Qii_DIR . DS . 'Autoloader')
  73. ->addNamespace('Qii\Controller', Qii_DIR . DS . 'Controller')
  74. ->addNamespace('Qii\Bootstrap', Qii_DIR . DS . 'Bootstrap')
  75. ->addNamespace('Qii\Config', Qii_DIR . DS . 'Config')
  76. ->addNamespace('Qii\Consts', Qii_DIR . DS . 'Consts')
  77. ->addNamespace('Qii\Exceptions', Qii_DIR . DS . 'Exceptions')
  78. ->addNamespace('Qii\Language', Qii_DIR . DS . 'Language')
  79. ->addNamespace('Qii\Library', Qii_DIR . DS . 'Library')
  80. ->addNamespace('Qii\Loger', Qii_DIR . DS . 'Loger')
  81. ->addNamespace('Qii\Plugin', Qii_DIR . DS . 'Plugin')
  82. ->addNamespace('Qii\Request', Qii_DIR . DS . 'Request')
  83. ->addNamespace('Qii\Response', Qii_DIR . DS . 'Response')
  84. ->addNamespace('Qii\Route', Qii_DIR . DS . 'Route')
  85. ->addNamespace('Qii\View', Qii_DIR . DS . 'View')
  86. ->addNamespace('Smarty', Qii_DIR . DS . 'View' . DS . 'smarty')
  87. ->addNamespace('Smarty', Qii_DIR . DS . 'View' . DS . 'smarty' . DS . 'sysplugins');
  88. //加载默认语言包
  89. \Qii\Autoloader\Factory::getInstance('\Qii\Language\Loader')->load('error', Qii_DIR . DS . 'Language');
  90. \Qii\Autoloader\Factory::getInstance('\Qii\Language\Loader')->load('error', Qii_DIR . DS . 'Language');
  91. \Qii\Autoloader\Factory::getInstance('\Qii\Language\Loader')->load('exception', Qii_DIR . DS . 'Language');
  92. \Qii\Autoloader\Factory::getInstance('\Qii\Language\Loader')->load('resource', Qii_DIR . DS . 'Language');