Laravist 半月谈(5.16 - 5.30) 脱稿的方方,嘘~~

[网站分享]

(X-Bird)

https://hub.docker.com/r/laraedit/laraedit/

https://segmentfault.com/a/119000000242873012个理念去快速创建高可维护性的应用

(Lonquan)

http://blog.fbbin.com/archives/1440让laravel的cache支持用connection选择redis服务

(安正超)

https://coveralls.io/代码覆盖检测Bug的软件,比scrutinizer直观些

http://starlight36.com/大神博客

http://flarum.org/论坛系统

https://designcode.io/一本学习设计的书

http://learninglaravel.net

(Abraham)

https://github.com/antvis/antvis.github.io/issues/1蚂蚁金服发布新一代数据可视化引擎G2

https://github.com/HubSpot/pacepjax + top process bar 的库

http://www.1checker.com/检查英语语法的

(Tomoe)

http://www.slideshare.net/coulix/vuejs-testingVue测试案例

https://github.com/warfares/pretty-jsonJson数据展示插件

http://warfares.github.io/pretty-json/范例

https://github.com/mohsen1/json-formatter-js/json数据格式化

https://github.com/vuejs/vue/issues/2873vue的一些版本资讯

https://sourcemaking.com/裡面很多關於模式的使用,重構的講解,非常清晰易懂

http://blog.tomoeba.com/Tomoe的博客

http://blog.tomoeba.com/jie-xi-laravel-pipeline/

https://www.youtube.com/watch?v=SLCajYNcThEPHP也有Day#19-PHP返樸歸真系列之從實例學設計模式

by 大澤木小鐵 (Jace Ju)​

http://abalone0204.github.io/2016/05/22/serverless-simple-crud/淺析 serverless 架構與實作

http://deployer.org/

http://sandbox.onlinephpfunctions.com/线上测试运行PHP

https://limonte.github.io/sweetalert2/消息提示框插件

http://9iphp.com/series/how-to-use-events-and-observers-in-laravel又一个php网站

http://www.pyimagesearch.com/2015/09/07/blur-detection-with-opencv/基于OpenCV的图片模糊检查

(Starriv) 

https://www.zenhub.io/  推荐一下这个,Github 的浏览器插件,用来做项目管理

https://phphub.org/topics/1692如何优雅的用IDE

https://ruff.io/zh-cn/Javascript开发硬件

(茄子)

http://www.myth.io/有关css

http://tech.it168.com/a2010/0104/832/000000832697_all.shtml玩转mysql外键

http://eloquentjavascript.net/JS英文书籍

(HavenShen)

http://regexr.com/正则网站

(Vikin)

https://github.com/julycoding/The-Art-Of-Programming-By-July编程之法:面试和算法心得

(晓)

http://www.v2ex.com/t/191534API 使用 HTTP 状态码还是全部返回 200

http://www.foundcss.com/

[业务疑问]

1) (安正超) ssl 证书子域名能用主域名的不?

答: (Littlehz) 看证书里的domain, 给哪个就能用哪个, 单域名证书是给 abc.def.com。泛域名证书是给 *.xxx.com和xxx.com。多域名证书是给 a1.b1.com和a2.b2.com等几个.  let's encrypt应该是只有单域,没有通配符或者多域。只给根域那就只能给根域用。子域可以到let's encrypt再申请一张。

2) (Mango!) 话说PHP 可以在图像上找到某图像吗

答: (安正超) 很难.

结论: (Mango!) 尝试按键精灵

3) (Xicode) ping++ iOS端支付,这时候后台只接受一个成功或失败的请求就可以是吗

答: (Lonquan) webhook 通知为准

4) (Lonquan) 这是什么意思?

答: (安正超) 名称冲突了,当前类里也有__call, 把 Macroable 中的 __call 取个别名

5) (盒子) Interface 'Symfony\Component\Translation\TranslatorInterface' not found

答: (Jellybool) 要么就是你没下下来,要么就是没autoload, 记得检查composer.json

6) (Lonquan) Laravel 5.0 cache 和 session 都用 redis 就会冲突  --- (据Lonquan亲测,5.2并不会冲突)

答: (Littlehz) 我之前遇到的问题是,php redis 扩展,如果开启了持久连接,不会记住 select db。所以几个 db 冲突,解决办法是 用几个内网域名,都指向一台 redis 机器,这样在 redis 扩展看来这是两个不同的地址,会保持两条不同的连接,这样就不会冲突。当然这个问题与 laravel 无关,不过你也可以尝试这样能不能解决问题。在hosts里面弄几个域名, redis协议又不是http,只认ip端口,又不认域名

.redis没有域名,就是基于 tcp 的文本协议.

7) (牵着蜗牛散步) laravel的orm对象设置缓存的话,大家怎么处理的

答: (Abraham) 缓存对象当然比纯数据大, 你可以缓存对象上的 attributes 属性

8) (茄子) JetBrains不认 vue component 里的 scss 咋办?

答: (Tomoe) 加個rel="stylesheet/scss"

9) (typhoonbb) 用Eloquent Model查询的时候 怎么只查询 指定的几个字段,比如Article::all();

答: (Abraham) table->all(['id', 'name'])

10) 如何实现动态子域名,切换本地化语言包

答: (jjplay)https://kovah.me/en/laravel-5-localization-based-on-the-subdomain/

(Abraham) 路由可以获取子域的,他这里用 parse 没啥必要哦。

//routes.php

$route->group(['domain' => '{lang}.do.com'], function(){});

// middleware

\Route::current()->getParameter('lang');

11) (Littlehz) 打算用多个 public 目录,不同的域名解析到不同的 public 目录,index.php 里用哪种方法配置 载入不同的 routers.php 路由最好来着?

希望达到 不同的域名指向不同的ip,不同的ip到不同的public目录,public_xxx/index.php能有什么办法指定路由文件。这样才能完全隔离几个域名,省的有大牛 绑Host到另一个IP也能用. 我的目标就是 域名 A1 指向  IP1,域名 A2 指向 IP2,绑了 A2的域名到 IP1 上是不能正常访问的。如果是物理机,多个IP直接绑在服务器网卡上,可以用 nginx listen 不同的IP来解决。但现在都是云服务器,网络都是虚拟的,服务器只有内网IP,nginx上无法解决。印象中是说在 index.php 中注册不同的 Router,然后自己实现 Router 载入不同的 routers.php.

答: (安正超) RouteServiceProvider.php里判断域名,或者在入口文件定义好常量后,直接在RouteServiceProvider.php 里引入常量对应的routes.php.

(Littlehz) 不是特别好,这样不能完全隔离

(Tomoe)http://laravel.io/forum/12-29-2015-hosting-laravel-5-on-subdomain然後RouterServiceProvider裡面在用$router->group(['domain' => 'sub1.xxx.com'] 去 require 不同 routes.php

(安正超) 在index.php或者使用define

(Abraham) $app['router']->group([], function(){

require '/path/to/routes.php';

});

[疑问] (Lonquan) 只要我知道域名, 怎么也还是能访问,就算分成不同的 public 目录...只要域名对了, 就可以访问了

[解惑] (安正超) 解析多个域名加载不同的路由 ,你用啥域名进来就是对应的路由,没问题啊 ,管你是什么方式解析的 ,hosts也好,dns也好

(Littlehz) 哼哼,前面还有LB限制。如果按 nginx 的语法大概就是这么写

server

{

listen 80 default;

server_name _;

return 403;

}

server {

listen ip1:80;

server_name a1;

xxxx;

}

server {

listen ip2:80;

server_name a2;

xxx;

}

然后就限制住了,有时候要做些策略什么的,防止意外情况发生,我还是习惯这么做 .我写路由的时候都是一条一条写清楚,不会给controller的所有方法都注册上路由的,也不会用any之类的请求,是get还是post写清楚,习惯问题。

12) (Lonquan) 请教个问题啊, 订单表内有个 总金额 字段,  统计的时候会经常 sum 这个字段, 有必要给他加个索引么

答: (Littlehz) 索引跟你sum没关系啊,跟你后面写的where条件才有关 ,别想缓存嘛,往冗余数据的方向想

13) (茄子) dingo 的 transformer如何内嵌 transformer



14) (Abraham) 现在 laravel 的 pjax 中间件,一般的做法都是用 middleware 去筛选 response中的 dom, 我看看能不能找到效率更高的办法 .有想法吗? 怎样做能避免每一页都进行这么大量的字符串操作?

看法: (安正超) 我觉得得从render下手 ,发明一套模版语法 ,然后按需渲染,或者整体渲染后缓存切片结果

(Lonquan) 我觉得依靠 section 就可以了吧,不用这么复杂. pjax是会有 x-pjax 的啊 ,就是原来的模板布局,

就是多了一个判断,类似你说的,模版里扩展出 @pjax @endpjax 然后把这部分模版缓存出来 .

pjax请求的时候在header头附带了选择器

(Tomoe) 我覺得應該還是可以在中間件處理,加一個Middleware,根據用戶設定決定是否留著header裡的pajax,

或是直接繼承pajax的middleware多一層來判斷之類的.pajax之前的不刷新換頁技術就是靠hash判斷,

後來瀏覽器開始有pushState特性,所以pajax把它包裝起來,變成不用在網址上動手腳.

15) (Drupal猎人) Laravel - 我是不是加上验证后,我每条ajax请求都要传token值过去?有没有简便的方法,不用每次都传.想要Vue适用的.

答: (Tomoe) Vue.http.headers.common['X-CSRF-TOKEN'] = $(el).data('csrf-token') .

或者

new Vue({

http: {

headers: {

"X-CSRF-TOKEN": $(el).data('csrf-token')

}

},

PS: data() 是jquery的方法,會去找prefix是data的屬性

又或者 $('meta[name="csrf-token"]').attr('content')

又又或者  

16) (Vikin) php artisan make:migration不执行的原因

解答: (Vikin) Illuminate\Database\Migrations空间下的MigrationCreator类中的getDatePrefix方法,而这个方法的公司就是返回一个格式化的时间戳,而时间戳的根源就是timezone.我之前把timezone设为上海了,然后date方法就挂了,根源就在timezone .

设成PRC好了

17) (茄子) 我有个 vue component,基本上对应一个model进行操作。你们觉得是在component里声明多个属性,一一对应model的属性呐,还是直接声明一个object 属性对应model 呐?

[见解] (Tomoe) 我比較常直接一個object耶,不然model變動的話也要跟著變

18) (Lonquan) php-fpm config 的这 2 个参数, emergency_restart_threshold, emergency_restart_interval 对应的 SIGSEGV 或者 SIGBUS 错误.这个错误是啥意思?

[解答] (Littlehz) 基本上不会有这两个信号,有这两个信号出现,说明可能系统配置有问题

我记得好像是 ulimit 不够,或者 malloc 内存不够才会出现这样的信号。还会有一些 execution timed out (137.222056 sec), terminating.

改这些参数 pm.process_idle_timeout 和 pm.max_requests ,process_idle_timeout 和 php.ini 的 max_execution_time 差不多,都是网页php超时,多久杀掉,只不过前者是 杀掉单个 php-fpm 进程,后者是结束 当前 request。只不过如果没有执行php的ticket事件,后者会不起作用。

request_terminate_timeout是单个 php-fpm 进程执行了多少次请求,就重启这个 php-fpm 进程。控制下,半天 ~ 一天时间,才重启一次 php-fpm 就差不多,重启频率太频繁也耗性能。

[一些见解]

1) (茄子) 关于Vue. 即使Vue没用ts,但是也上了一个静态类型检查Flow,高手知道自己不可能避免犯错,所以会借助工具(测试),或者语言规范(静态类型检查)来约束自己.记得几年前用动态语言的还在争:静态类型检查没必要,什么什么的。。。。不过现在应该已经达成共识了。以前倒是不知道Flow这个静态类型检查工具,看Vue在用才了解。有时间还是要关注下,项目一旦大了,静态类型检查还是有必要的.

http://flowtype.org/

2) (安正超) Github的见解: 不一定要自己建立repo才NB,你看 Laravel 作者里18岁那哥们 ,维护着N个项目,保持为N个项目提交代码

https://github.com/GrahamCampbell. 你可以从我说的的角度出发 ,然后你在为其它项目贡献代码的时候 ,你会发现idea的 .因为如果你,不去多看看其它项目 ,你不知道一些隐含的规范 ,而且多看看其它项目收获很大.看到英语不要怕,一行行的读,遇到不认识的双击让工具帮忙,因为你发现当你去认真接受它,去读它的时候,咦,没那么难嘛


[小技巧]

1) (Littlehz)

业务场景: id生成器,替代mysql自带的auto_increment.分表的时候才用,这个业务场景稍微严格点,用redis自增没数据库稳妥。

无锁,也无需事务支持,有锁的话性能怎么撑得住.会出现多个 session 同时 update 的情况,但是这个操作是原子性的,只要你能保证一个操作是原子性的.就不需要锁,也不需要事务.这个只是生成id.至于insert记录失败,关这个id生成器什么事?

不用这个id跳过去就是了嘛.auto_increatment不也是一样在rollback的时候不会恢复么,id不一定必须要连续.任何业务来问一个id,我给一个新的id + 1给业务,保证并发量再大,都不会给重复就可以了.至于业务用不用这个id,还是中断了还是别的怎么的都不关id生成器的事.低耦合.

至于为啥会觉得 redis 的自增没有数据库的稳妥,是持久化的原因.

一旦redis重启,很难保证不丢几秒的数据。而如果并发量又大,那可能好几百个id重复了.

2) (Littlehz)

有用啊,就是初始化laravel框架,但是什么事情不默认处理。

应用场景很多啊,比如我要建个 TCPServer,接收TCP数据包,校验TCP数据包,分析数据包的某个字节分配到不同的controller执行具体业务。

又比如,用laravel做各种RPC-Server、json-rpc、thrift、protobuf等等。

3) (Littlehz) dump数据库

mysqldump --quick --single-transaction --default-character-set=utf8mb4 --hex-blob -h192.168.200.2 -uroot -pxxxxxx --databases db1 db2 db3 | gzip > /tmp/db.sql.gz

4) 只要掌握 js 的原型链、变量的作用域,js就没有太大的阻力了,剩下的只是不断更新的API

推荐书籍: 《JavaScript语言精粹》《你不知道的javascript》


[名词解释]

Electron: 用js寫桌面应用, atom就是基于Electron

(Tomoe) Postcss:http://www.oschina.net/p/postcss/好像挺火

(Tomoe) wangeditor:http://www.kancloud.cn/wangfupeng/wangeditor2/113992

(Tomoe & 茄子) vue-loader: 加载.vue格式的文件,可以實現單文件開發組件的loader ,webpack的,只是單純對同一個文件解析html, js, style,最後再讓他們關聯在一起.原本你可能要另外把html寫在一塊 ,還有style也是另外寫個css,現在把這些事情放在一起就比較好開發,其實他也是把這些東西按照標籤切割解析後,最後在js中重新import進來.   而require.js 解决的是加载模块的问题。 webpack本身只能处理js文件,loader是它处理其他文件的插架形式.

(超神) JWT & Oauth2: jwt与oauth方向不一样,oauth 专注认证流程,jwt专注安全认证信息的加密,OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。

Git Flow: 一套使用Git进行源代码管理时的一套行为规范和简化部分Git操作的工具

SourceTree: Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,同时也是Mercurial和Subversion版本控制系统工具。支持创建、克隆、提交、push、pull 和合并等操作。 SourceTree拥有一个精美简洁的界面,大大简化了开发者与代码库之间的Git操作方式,这对于那些不熟悉Git命令的开发者来说非常实用。

(安正超) scrutinizer: 号称是比 phpstorm 都强大的静态分析工具,代码重复 ,注释不规范 ,还有缩进不正确 ,还有各种


下一篇,6月14号

                             看我眼神,灭神

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,511评论 1 330
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,495评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,595评论 0 225
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,558评论 0 190
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,715评论 3 270
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,672评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,112评论 2 291
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,837评论 0 181
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,417评论 0 228
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,928评论 2 232
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,316评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,773评论 2 234
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,253评论 3 220
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,827评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,440评论 0 180
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,523评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,583评论 2 249

推荐阅读更多精彩内容