/** * 构造方法. * * @access public * @param array $configs 配置项, 为空使用配置文件中的配置. * @return void */ public function __construct(array $configs = []) { if (empty($configs)) { $configs = Config::get(__CLASS__); } $this->_configs = array_merge($this->_configs, $configs); if (empty($this->_configs['bgPath'])) { $this->_configs['bgPath'] = __DIR__ . '/imgs/'; } if (empty($this->_configs['fontPath'])) { $this->_configs['fontPath'] = __DIR__ . '/fonts/'; } }
/** * 初始化配置. * * @access public * @return void */ private static function _initialize() { if (self::$_inited) { return; } $configs = Config::get(__CLASS__); self::$_prefix = $configs['prefix']; self::$_autoStart = $configs['auto_start']; session_name($configs['name']); ini_set('session.gc_maxlifetime', $configs['max_lifetime']); session_set_cookie_params($configs['cookie_expire'], $configs['cookie_path'], $configs['cookie_domain'], $configs['cookie_secure'], $configs['cookie_httpOnly']); unset($configs); self::$_inited = TRUE; }
/** * 构造方法. * * @access public * @param array $configs 可配置项, 为空使用配置文件中的配置. * @return void */ public function __construct(array $configs = []) { if (empty($configs)) { $configs = Config::get(__CLASS__); } $this->_configs = array_merge($this->_configs, $configs); }
/** * 构造方法. * * @access public * @param string $tableName 表名, 默认 NULL, 表示模型名计算表名. * @param array $configs 数据库连接配置项, 默认 [], 表示使用配置文件中的配置. * @return void */ public function __construct($tableName = NULL, array $configs = []) { if (empty($configs)) { $configs = Config::get('wuyuan\\db\\Connection'); } $this->conn = Connection::getInstance($configs); $this->_tablePrefix = $configs['tablePrefix']; if (NULL === $tableName) { // 计算表名. $this->_className = get_class($this); $modelSuffix = Config::get('model_suffix'); $modelName = substr(substr($this->_className, strrpos($this->_className, '\\') + 1), 0, -strlen($modelSuffix)); // 将 UserDetail 转换成 user_detail. $tableName = trim(preg_replace('/[A-Z]/', $this->tableSplit . '$0', $modelName), $this->tableSplit); } $this->_tableName = strtolower($tableName); }
/** * 构造方法. * * @access public * @param array $configs 配置项, 为空使用配置文件中的配置. * @return void */ public function __construct(array $configs = []) { if (empty($configs)) { $configs = \wuyuan\base\Config::get(get_class($this)); } $this->configs = array_merge($this->configs, $configs); }
/** * 解析请求. * * @access public * @return void */ public static function parseRequest() { $configs = Config::get(__CLASS__); self::$_configs = array_merge(self::$_configs, $configs); unset($configs); // 是否为分组模式. $groupMode = self::$_configs['groupMode'] && self::$_configs['groupList']; self::$_isGroup = $groupMode && self::$_configs['defaultGroup']; // 设置应用路径别名. $alias = strtok(self::$_configs['controllerNs'], '\\'); wy::addAlias('@' . $alias, WY_APP_DIR); // 根据不同的 urlMode 解析. switch (self::$_configs['urlMode']) { case self::MODE_NORMAL: // normal. self::parseNormal(); break; case self::MODE_PATHINFO: // pathinfo. self::parsePathinfo(); break; default: // 默认 pathinfo. self::parsePathinfo(); } // 分组模式, 合并分组节点的配置项. if (self::$_isGroup) { Config::loadNode(self::$_groupName); } }
/** * 构造方法. * * @access public * @param array $configs 配置项, 为空使用配置文件中的配置. * @return void */ public function __construct(array $configs = []) { if (empty($configs)) { $configs = Config::get(__CLASS__); } // 合并配置. $this->_configs = array_merge($this->_configs, $configs); // 处理 mimes. if (!empty($this->_configs['mimes'])) { $this->_configs['mimes'] = array_map('strtolower', $this->_configs['mimes']); } else { $this->_configs['mimes'] = []; } // 处理 exts. if (!empty($this->_configs['exts'])) { $this->_configs['exts'] = array_map('strtolower', $this->_configs['exts']); } else { $this->_configs['exts'] = []; } }
/** * 开始运行应用. * * @access public * @return void */ public static function run() { ini_set('session.auto_start', 0); // 关闭 php.ini 中的自动开启 session. $configs = Config::get(); // 设置时区. date_default_timezone_set($configs['default_timezone']); if ($configs['gzip_output'] && function_exists('ob_gzhandler')) { ob_start('ob_gzhandler'); } else { ob_start(); } header('Content-type: text/html; charset=' . $configs['default_charset']); unset($configs); if (NULL !== self::$onBeforeParseRequest) { call_user_func(self::$onBeforeParseRequest); } Url::parseRequest(); // 解析请求. if (NULL !== self::$onBeforeDispatch) { call_user_func(self::$onBeforeDispatch); } Url::dispatch(); // 请求分发. ob_end_flush(); flush(); }
/** * 构造方法. * * @access public * @param integer $totalRows 总条数. * @param integer $pageSize 每页显示的条数, 默认 10. * @param array $configs 配置项, 默认 [], 表示使用配置文件中的配置. */ public function __construct($totalRows, $pageSize = 10, array $configs = []) { if (empty($configs)) { $configs = Config::get(__CLASS__); } // 合并配置. $this->_configs = array_merge($this->_configs, $configs); $this->_pageSize = $pageSize; if (isset($_GET[$this->_varPage])) { $page = (int) $_GET[$this->_varPage]; $this->_page = $page < 1 ? 1 : $page; } if ($this->_configs['showPageSize']) { $size = isset($_GET[$this->_varPageSize]) ? (int) $_GET[$this->_varPageSize] : $pageSize; $this->_pageSize = $size < 1 ? $pageSize : $size; if (!in_array($this->_pageSize, $this->_configs['pageSizeList'])) { $this->_pageSize = $this->_configs['pageSizeList'][0]; } } $this->_totalRows = $totalRows; $this->_pageCount = (int) ceil($totalRows / $this->_pageSize); }
/** * 构造方法. * * @access public * @param string $name 名称. * @param mixed $value 值. * @param array $configs 配置项, 为空使用配置文件中的配置. * @return void */ public function __construct($name, $value, array $configs = []) { if (empty($configs)) { $configs = Config::get(__CLASS__); } $this->_configs = array_merge($this->_configs, $configs); $this->name = $name; $this->value = $value; }