这篇文章使用来记录一些篇幅很短,不能说上是话题的知识.
问:php可以操作二维码扫描枪吗 我想用来做识别会员卡的
Little答
扫描枪跟php没毛线关系,扫描枪不用装驱动,就是个键盘。扫出来一堆数字自动填到当前焦点的input/textarea就好。你写个js,扫描枪按钮按下的时候会产生一个keydown事件,你debug看看这个keycode是什么。然后绑定keycode到,触发的时候让input focus(),然后一堆数字字母就批量填上去了。
分割线 ---------------------------------------------------
Walle v1.1 发布了
支持ansible,并发传输文件、并发执行命令,多机器环境下缩短发布时间 1/2 以上
分割线 ---------------------------------------------------
问:laravel 分布部署的时候.... 日志怎么处理....
多人整合后的观点:分机存放(日志不需要统一); 别写共享磁盘(因为慢);monolog有rsyslog
考量:要查的时候.. 不就苦逼了么
针对考量:这不该做成常态化的。临时调个问题,外网能复现,那肯定所有机器都能复现,随便找一台机器debug就行
分割线 ---------------------------------------------------
问:bootstrap的javascript源码,在function前写个 + 号,是何用途?
答:
只要是个操作符就行,告诉解析器,这是表达式,可以直接执行(传统的是先声明,再调用)
分割线 ---------------------------------------------------
安正超与Little 之 命名规范
安正超
去掉无意义的词语:info, data,order 就是 order, 别 orderInfo,orderData之类的
Little
重新考虑变量的命名,动词 + 名词,过去分词 + 名词这样的形式,删掉超神说的无意义的info、data词,按驼峰处理大小写
Laravel 获取 route:list
route::list 这个命令就是使用的getRoutes
public function __construct(Router $router)
{
parent::__construct();
$this->router = $router;
$this->routes = $router->getRoutes();
}
分割线 ---------------------------------------------------
Laravel token csrf
little
crsf仅用于防止跨越脚本提交,跟xss有关联但也不是一回事。crsf并不保证只提交一次,只保证是自己的页面/脚本提交,而防止别人恶意引入了一个页面或者js来提交
Abraham
laravel 的 csrf 策略和 yii 不一样, yii 是每个请求重新生成, laravel 则是在同一个 session 固定的生命周期内(有过期时间)。
这样做有好处也有坏处。
好处显而易见, 1 不必每次都生成占用资源。 2 当用户在表单提交后点击浏览器的后退按钮后,再次提交则不必失败。 3 如果用户打开多个 tab csrf 不会互相干扰(可以规避但是还要额外设计)。
坏处是当系统有其它高危漏洞的时候(比如能让第三方有机会获得用户 session 比如 xss),这时候是有危险的,黑客会根据 session 取得用户 token 。如果能规避这点。 每个请求和每个 session 没什么区别。 这也是安全界一段时间以来的争议。 laravel 决定不使用每个请求变更的做法。
固定时间更新是被设计出来的,不是缺陷。
安小超
Token验证后才会变
分割线 ---------------------------------------------------
Xdebug 错误
Abraham
xdebug.max_nesting_level=9999
分割线 ---------------------------------------------------
打印快递单
littlehz
用电子面单,110mm正方形热敏纸的那种。打印速度快一秒钟可以出来几张,顺丰网站上有模板下载。不过电子面单要和业务员谈,签协议的,单号什么都是你自己生成。针式打印机打印速度太慢,而且那种三四联的快递单还要几块钱一份买。
问题背景: 现在是网站后台订单那有个打印快递单的功能,说是用针式的打,打快递单那种.这样就得做个页面
用lodop插件慢慢套.
如果是自己的电商用,那就向老板强推电子面单,你会省很多事,另外打印速度快,耗材省,整体好处多的多。如果是你做一个通用的后台,给各个客户用的,要兼容各种快递单,那就只能慢慢折腾吧。据我的了解,连顺丰每年都会更新至少三种快递单格式淘汰旧的。其他小快递更是模板经常变,每个地区也不一样。
分割线 ---------------------------------------------------
查看PHP扩展
输入 php --ri + 扩展名,输出版本号和 num
分割线 ---------------------------------------------------
Mysql优化经验
Little
数据结构设计更重要;
nosql思维来做mysql,至于那个优化,熟读一遍my.cnf的配置,常用的几个调优参数不超过10个;
数据结构不合理,各种复杂条件查询,就是上了SSD也帮不了你;
尽可能只用主键操作。索引查询都尽可能少用。即时用索引查询,也让第一个查询条件出来的结果集在1000行以内。非索引查询、LIKE禁止使用。联表也不用。--- 这就是用nosql的方式来做mysql
只按主键查询,水平扩展很容易,要分库分表吧,好做。用户表太大,想换mysql到mongodb,也好做,想加缓存,非常容易。至于复杂的结果,后台要看数据怎么办?离线分析spark、hadoop。要搜索怎么办,上ES搜索引擎
分割线 ---------------------------------------------------
Little:编译
这种核心模块还是静态编译吧,核心模块编译成so总感觉不好,这只是个人强迫症。可以借助tmux/screen无视ssh断开,还可以借助ansible/puppet来批量在多台机器上执行命令。