Setting.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace \Qii\Config;
  3. /**
  4. * 系统设置
  5. *
  6. */
  7. class Setting
  8. {
  9. protected static $_instance;
  10. public $language;
  11. private function __construct()
  12. {
  13. }
  14. /**
  15. * 返回Qii初始化类
  16. */
  17. public static function getInstance()
  18. {
  19. if (self::$_instance == null) {
  20. self::$_instance = new self();
  21. }
  22. return self::$_instance;
  23. }
  24. /**
  25. * 设置默认语言
  26. *
  27. * @return $this
  28. * @throws Exception
  29. */
  30. public function setDefaultLanguage()
  31. {
  32. $this->language = \Qii_Autoloader_Psr4::getInstance()->loadClass('Qii_Language_Loader');
  33. //加载语言包
  34. $this->language->load('error', Qii_DIR);
  35. $this->language->load('exception', Qii_DIR);
  36. return $this;
  37. }
  38. /**
  39. * 设置区域
  40. *
  41. * @return $this
  42. */
  43. public function setDefaultTimeZone()
  44. {
  45. //设置时区
  46. $timezone = \Qii::getInstance()->appConfigure('timezone');
  47. if ($timezone) date_default_timezone_set($timezone);
  48. return $this;
  49. }
  50. /**
  51. * 设置默认的controller和action
  52. */
  53. public function setDefaultControllerAction()
  54. {
  55. //设置默认controller及controller方法前缀
  56. \Qii_Config_Register::set(\Qii_Const_Config::APP_DEFAULT_CONTROLLER, \Qii::getInstance()->appConfigure('controller')['default']);
  57. \Qii_Config_Register::set(\Qii_Const_Config::APP_DEFAULT_CONTROLLER_PREFIX, \Qii::getInstance()->appConfigure('controller')['prefix']);
  58. //设置默认action及方法名后缀
  59. \Qii_Config_Register::set(\Qii_Const_Config::APP_DEFAULT_ACTION, \Qii::getInstance()->appConfigure('action')['default']);
  60. \Qii_Config_Register::set(\Qii_Const_Config::APP_DEFAULT_ACTION_SUFFIX, \Qii::getInstance()->appConfigure('action')['suffix']);
  61. return $this;
  62. }
  63. /**
  64. * 设置默认的namespace
  65. */
  66. public function setDefaultNamespace()
  67. {
  68. //配置文件中如果设置了使用namespace就将指定的前缀添加到namespace中
  69. $namespaces = \Qii::appConfigure('namespace');
  70. if (is_array($namespaces) && isset($namespaces['use'])
  71. && $namespaces['use'] && isset($namespaces['list'])
  72. && is_array($namespaces['list'])
  73. ) {
  74. foreach ($namespaces['list'] AS $namespace => $val) {
  75. \Qii::getInstance()->setUseNamespace($namespace, $val);
  76. }
  77. }
  78. return $this;
  79. }
  80. }