### config 配置 * config 配置没什么好说的, 就几处修改. * 路径application/config.php ~~~ // 扩展函数文件 'extra_file_list' => [APP_PATH . 'flconfig.php',APP_PATH . 'member.php',THINK_PATH . 'helper' . EXT], // 模板文件名分隔符 'view_depr' => '_', 'captcha' => [ // 验证码字符集合 'codeSet' => '0123456789', // 验证码字体大小(px) 'fontSize' => 25, // 是否画混淆曲线 'useCurve' => false, // 验证码图片高度 'imageH' => 45, // 验证码图片宽度 'imageW' => 100, // 验证码位数 'length' => 2, // 验证成功后是否重置 'reset' => true ], // +---------------------------------------------------------------------- // | 视图输出字符串内容替换 // +---------------------------------------------------------------------- 'view_replace_str' => [ '__ROOT__' => '/', '__BASE__' => BASE_PATH.'/public/base', '__STATIC__' => BASE_PATH.'/public/static', '__PUBLIC__' => BASE_PATH.'/public', ], ~~~ * 数据库配置 * 都是基本默认, 唯一是服务的账户密码等. * 路径application/database.php ~~~ return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'demo', // 用户名 'username' => 'root', // 密码 'password' => 'root', // 端口 'hostport' => '', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', // 数据库调试模式 'debug' => true, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 是否严格检查字段是否存在 'fields_strict' => true, // 数据集返回类型 array 数组 collection Collection对象 'resultset_type' => 'array', // 是否自动写入时间戳字段 'auto_timestamp' => true, // 是否需要进行SQL性能分析 'sql_explain' => true, ]; ~~~ * 后台登录检测文件, 用于检测是否登录等. * 此处引用麦当苗儿的文件 * 路径application/member.php ~~~ /** * 检测用户是否登录 * @return integer 0-未登录,大于0-当前登录用户ID * @author [White to black] <[<email 973873838@qq.com>]> */ function is_login(){ $user = session('user_auth_session'); if (empty($user)) { return 0; } else { return session('auth_login_sign') == data_auth_sign($user) ? $user['LoginId'] : 0; } } /** * 检测当前用户是否为管理员 * @return boolean true-管理员,false-非管理员 * @author [White to black] <[<email 973873838@qq.com>]> */ function is_administrator($uuid = null) { $uuid = is_null($uuid) ? is_login() : $uuid; return $uuid && (intval($uuid) === config('user_administrator')); } /** * 数据签名认证 * @param array $data 被认证的数据 * @return string 签名 * @author 麦当苗儿 <zuojiazi@vip.qq.com> */ function data_auth_sign($data) { //数据类型检测 if (!is_array($data)) { $data = (array)$data; } ksort($data); //排序 $code = http_build_query($data); //url编码并生成query字符串 $sign = sha1($code); //生成签名 return $sign; } ~~~ * 此处暂时用不到, 用于后台config设置, 比如我想设置某个参数, 就config设置一下, 后面会讲到. 暂时先丢在这里. * 路径application/flconfig.php ~~~ use think\Config; /** * [get_config_type 获取配置的类型] * @param [integer] $type [配置类型] * @return [string ] [description] */ function get_config_type($type=0){ $list = Config::get('config_type_list'); return $list[$type]; } /** * [get_config_group 获取配置的分组] * @param [integer] $group [配置分组] * @return [string] [description] */ function get_config_group($group=0){ $list = Config::get('config_group_list'); return $group ? $list[$group] : '无分组'; } /** * [parse_config_attr 分析枚举类型配置值 格式 a:名称1,b:名称2] * @param [string] $string [需要解析的字符串] */ function parse_config_attr($string) { $array = preg_split('/[,;\r\n]+/', trim($string, ",;\r\n")); if(strpos($string,':')){ $value = array(); foreach ($array as $val) { list($k, $v) = explode(':', $val); $value[$k] = $v; } }else{ $value = $array; } return $value; } ~~~