public static function dispatch() { $uri = visitor::uri(); $target = router::parse_pps_uri($uri); if (config::get_module('view.default_skeleton', false) !== false) { if (config::get_module('view.cache_pps_in_server', false)) { $use_cache = false; if (defined('kern\\data_dir')) { $version_key = config::get_kern('version_key', router::default_version_key); $cache_dir = data_dir . '/cache/' . $serve_mode . '/' . $target->get_param($version_key, '0'); $cache_file = $cache_dir . '/' . sha1($uri) . '.cache'; if (is_readable($cache_file)) { $use_cache = true; } } if ($use_cache) { $content = file_get_contents($cache_file); } else { $content = pps_rendor::render_for($target); if (!is_dir($cache_dir)) { @mkdir($cache_dir, 0777, true); } @file_put_contents($cache_file, $content); } } else { $content = pps_rendor::render_for($target); } } else { $content = ''; } visitor::set_content($content); }
public static function __init__() { // @todo: lazy initialization? self::$prefix = visitor::get_prefix(); self::$static_domain = config::get_kern('static_domain', ''); self::$upload_domain = config::get_kern('upload_domain', ''); self::$version_key = config::get_kern('version_key', self::default_version_key); self::$version = config::get_kern('version', self::default_version); self::$base_is_https = config::get_base('url.is_https', false); self::$base_domains = config::get_base('url.domains', []); foreach (self::$base_domains as $domain) { # base 模块的 module_name 统一为 'base' self::$domain_modules[$domain] = 'base'; } self::$base_enable_rewrite = config::get_base('url.enable_rewrite', false); self::$base_csrf_key = config::get_base('url.csrf_key', self::default_csrf_key); self::$base_target_key = config::get_base('url.target_key', self::default_target_key); self::$base_routes = config::get_base('url.routes', []); self::$base_flipped_routes = array_flip(self::$base_routes); foreach (config::get_module_names() as $module_name) { config::set_module_name($module_name); self::$module_is_https[$module_name] = config::get_module('url.is_https', false); $domains = config::get_module('url.domains', []); self::$module_domains[$module_name] = $domains; foreach ($domains as $domain) { self::$domain_modules[$domain] = $module_name; } self::$module_enable_rewrites[$module_name] = config::get_module('url.enable_rewrite', false); self::$module_csrf_keys[$module_name] = config::get_module('url.csrf_key', self::default_csrf_key); self::$module_target_keys[$module_name] = config::get_module('url.target_key', self::default_target_key); self::$module_routes[$module_name] = config::get_module('url.routes', []); self::$module_flipped_routes[$module_name] = array_flip(self::$module_routes[$module_name]); } # 实际是哪个 module_name 需要解析 config::set_module_name(null); }
public static function init() { $include_pathes = implode(PATH_SEPARATOR, config::get_kern('include_pathes', [])); if ($include_pathes !== '') { set_include_path(get_include_path() . PATH_SEPARATOR . $include_pathes); } spl_autoload_register(['kern\\loader', 'load_class']); }
protected static function new_role_secret() { return sha1(config::get_kern('secret_key', '') . random_sha1()); }