Setting.php 2.5 KB

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