think\App::initCommon PHP 메소드

initCommon() 공개 정적인 메소드

初始化应用
public static initCommon ( )
    public static function initCommon()
    {
        if (empty(self::$init)) {
            // 初始化应用
            $config = self::init();
            self::$suffix = $config['class_suffix'];
            // 应用调试模式
            self::$debug = Env::get('app_debug', Config::get('app_debug'));
            if (!self::$debug) {
                ini_set('display_errors', 'Off');
            } elseif (!IS_CLI) {
                //重新申请一块比较大的buffer
                if (ob_get_level() > 0) {
                    $output = ob_get_clean();
                }
                ob_start();
                if (!empty($output)) {
                    echo $output;
                }
            }
            // 注册应用命名空间
            self::$namespace = $config['app_namespace'];
            Loader::addNamespace($config['app_namespace'], APP_PATH);
            if (!empty($config['root_namespace'])) {
                Loader::addNamespace($config['root_namespace']);
            }
            // 加载额外文件
            if (!empty($config['extra_file_list'])) {
                foreach ($config['extra_file_list'] as $file) {
                    $file = strpos($file, '.') ? $file : APP_PATH . $file . EXT;
                    if (is_file($file) && !isset(self::$file[$file])) {
                        include $file;
                        self::$file[$file] = true;
                    }
                }
            }
            // 设置系统时区
            date_default_timezone_set($config['default_timezone']);
            // 监听app_init
            Hook::listen('app_init');
            self::$init = $config;
        }
        return self::$init;
    }