示例#1
0
 /**
  * 构造方法.
  * 
  * @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/';
     }
 }
示例#2
0
 /**
  * 初始化配置.
  * 
  * @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;
 }
示例#3
0
 /**
  * 构造方法.
  * 
  * @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);
 }
示例#4
0
 /**
  * 构造方法.
  * 
  * @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);
 }
示例#5
0
 /**
  * 构造方法.
  * 
  * @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);
 }
示例#6
0
 /**
  * 解析请求.
  * 
  * @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);
     }
 }
示例#7
0
 /**
  * 构造方法.
  * 
  * @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'] = [];
     }
 }
示例#8
0
 /**
  * 开始运行应用.
  * 
  * @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();
 }
示例#9
0
 /**
  * 构造方法.
  * 
  * @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);
 }
示例#10
0
 /**
  * 构造方法.
  *
  * @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;
 }