Ejemplo n.º 1
0
Archivo: pps.php Proyecto: xpd1437/swap
 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);
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 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']);
 }
Ejemplo n.º 4
0
 protected static function new_role_secret()
 {
     return sha1(config::get_kern('secret_key', '') . random_sha1());
 }