近况
今下午请假去🏥检查腰椎,好在没什么大问题,但是医生建议的不要长时间坐…对我来说也只能尽可能缩短一次连续坐的时间 从上个星期开始在做一个小型的微信端餐饮相关商城开发 我打算在这个项目中尝试使用php服务端渲染页面+vue.js处理前端所有数据交互,数据库还是mysql,运行环境依然是lamp 工作之余尽量安排一些时间学习ES6语法,vue.js单页面应用的项目结构和vue.js的路由,babel自动编译开发环境的部署 ok,先就这样吧
今下午请假去🏥检查腰椎,好在没什么大问题,但是医生建议的不要长时间坐…对我来说也只能尽可能缩短一次连续坐的时间 从上个星期开始在做一个小型的微信端餐饮相关商城开发 我打算在这个项目中尝试使用php服务端渲染页面+vue.js处理前端所有数据交互,数据库还是mysql,运行环境依然是lamp 工作之余尽量安排一些时间学习ES6语法,vue.js单页面应用的项目结构和vue.js的路由,babel自动编译开发环境的部署 ok,先就这样吧
假设: Admin/Home/Controller/BaseController.class.php是一个基础控制器 $current_params和$in是两个在Admin/Home/Controller/BaseController.class.php中用来保存接收参数的属性,并且已经在构造函数中对其赋值 Admin/Tpl/Index/footer.html是布局中的公共部分 Public/Model/BaseModel.class.php是公共模型 请求中用来表示模块,控制器,操作的参数名称分别为:m,c,a #searchForm和#excelForm分别为条件搜索form和excel表单导出请求提交时用来临时保存和传递筛选条件的form 全局改动 Admin/Home/Controller/BaseController.class.php改动: 新增protected $current_params属性 _initialize方法尾部新增以下代码(用于处理传入的有效参数): unset($this->current_params['m']); unset($this->current_params['c']); unset($this->current_params['a']); $this->assign('page_url', U(CONTROLLER_NAME.'/'.ACTION_NAME,$this->current_params)); 控制器尾部新增以下方法: /* * todo:处理排序请求 * @param $sort string 用来mysql排序的字符串 * @param $column string 用来指定排序字段名称 * @param $value int 排序值,1:顺序;2:倒序 * @param $table string 需要排序字段在当前sql语句中表的别名 * @return string 返回处理后的$order * */ protected function assembleSort($sort,$column,$value,$table){ $order = urldecode($sort); $v_sort[$column] = $value == 1 ? 2 : 1; $v_sort['param_sort'] = $sort; $v_sort['param_column'] = $column; $v_sort['param_value'] = $v_sort[$column]; $v_sort['param_table'] = $table; $this->assign('sort', $v_sort); return $order; } Admin/Tpl/Index/footer.html改动: 在</body>标签前新增以下代码: html(保存当前页面并携带除排序相关参数的url): ...
命名规范 库名、表名、字段名必须使用小写字母,并采用下划线分割 库名、表名、字段名禁用超过32个字符。须见名知意 库名、表名、字段名禁用使 MySQL保留字 临时库、表名必须以tmp为前缀,并以日期为后缀 备份库、表必须以bak为前缀,并以日期为后缀 基础规范 使用INNODB存储引擎 表字符集使用utf8mb4 所有表都需要添加注释 单表数据量建议控制在5000W以内 不在数据库中存储图片、文件等大数据 禁止在线上做数据库压力测试 禁止从测试、开发环境直连数据库 库表设计 禁止使用分区表 拆分大字段和访问频率低的字段,分离冷热数据 HASH进行散表,表名后缀使用十进制数,下标从0开始 按日期时间分表需符合YYYY[MM][DD][HH]格式 采用合适的分库分表策略。例如千库十表、十库百表等 字段设计 尽可能不使用TEXT、BLOB类型 DECIMAL代替FLOAT和DOUBLE存储精确浮点数 Simple is good 将字符转化为数字 使用TINYINT来代替ENUM类型 Generosity can be unwise 存储 “hello”时VARCHAR(5) VS VARCHAR(200) Avoid null if possible 所有字段均定义为NOT NULL ! Smaller is usually better 使用UNSIGNED存储非负整数 INT类型固定占用4字节存储 使用timestamp存储时间 使用INT UNSIGNED存储IPV4 使用VARBINARY存储大写敏感的变 字符串 禁用在数据库中存储明文密码 索引规范 索引的用途 去重 加速定位 避免排序 覆盖索引 索引数量控制 单张表中索引数量不超过5个 单个索引中的字段数不超过5个 对字符串使用前缀索引,前缀索引长度不超过8个字符 建议优先考虑前缀索引,必要时可添加伪列并建立索引 主键准则 表必须有主键 不使用更新频繁的列 尽量不选择字符串列 不使用UUID MD5 HASH 默认使用非空的唯一键 建议选择自增或发号器 重要的SQL必须被索引 UPDATE、DELETE语句的WHERE条件列 ORDER BY、GROUP BY、DISTINCT的字段 多表JOIN的字段 区分度最大的字段放在前 核心SQL优先考虑覆盖索引 避免冗余和重复索引 索引不是越多越好 综合评估数据密度和分布 考虑查询和更新比例
windows+apache2开启SSL以及80端口强制跳转SSL访问的方法 申请证书 推荐Let’s Encrypt(免费证书的有效期为3个月,但提供了自动更新证书的功能),也可以用阿里云(免费证书有效期1年,目前是手动更新) 开启ssl模块 首先确保apache开启了LoadModule ssl_module modules/mod_ssl.so 配置443端口 再参考官方文档的一段内容: Listen 443 <VirtualHost *:443> DocumentRoot "项目入口文件目录" ServerName 域名 SSLEngine on SSLCertificateFile "路径/文件名.cert" SSLCertificateKeyFile "路径/文件名.key" </VirtualHost> 在apache的vhosts.conf中添加以上代码,重启apache 配置80端口跳转443 这里直接上代码: <VirtualHost *:80> RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/?(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R] ServerName 域名 </VirtualHost> 告诉apache将该域名下80端口的所有请求跳转到443,重启apache 至此配置完成 在ubuntu环境下配置基本一样,开启apache ssl模块支持使用sudo a2enmod ssl,然后重启service apache2 restart 补充: 后面在一个微信项目中发现以上做法的一个问题: 安卓手机在使用微信内置浏览器QQ浏览器X5内核提供技术支持访问可能会出现页面空白的情况,而在PC端的调试工具和IOS以及其他浏览器上未发现该问题 解决方法:修改虚拟机配置如下: Listen 443 <VirtualHost *:443> DocumentRoot "项目入口文件目录" ServerName 域名 SSLEngine on SSLCertificateFile "路径/文件名.cert" SSLCertificateKeyFile "路径/文件名.key" SSLCertificateChainFile "路径/文件名.pem" </VirtualHost> 其实就是添加了一行SSLCertificateChainFile ...
关于greasemonkey(油猴)的安装和一些实用脚本推荐 步骤 准备工作:确保你的电脑可以科学上网 以本人的chrome浏览器为例 1. 打开一个新标签页 2. 地址栏输入chrome://apps/ 3. 页面右下角选择网上应用店 4. 搜索greasemonkey,如图: 5. 点击安装,完成安装后在如图位置会出现一个图标 6. 点击获取新脚本跳转到一个页面,在当前页面中点击途中位置 7. 会跳转到Greasy Fork的搜索页,在搜索框中输入userscript+点击enter 8. 在出现的结果中选择 其他 greasemonkey(油猴子介绍) 简单说是一个可以安装当前正在浏览页面可用的额外功能的脚本,举个栗子:非会员在优酷视频无法观看会员视频,而安装油猴子之后再安装了userscript+脚本就可以自动在当前页面检测可用的脚本(可用脚本的提示将会出现在页面右下角,点击即安装) 介绍一下VIP视频破解脚本用法 用优酷举例吧,直接上图 1. 首页点击会员 2. 随便选择一个视频 3. 视频播放窗口左上角可以切换通道(部分通道可能无法播放,不过选择超多) 本文仅供心得交流,请自觉购买会员支持正版! 关于科学上网请自行baidu