2015年总结

前6个月在windows服务器上把一整套电商团购特卖系统开发并run起来

后6个月接触了很多

restful API开发模式开发

thinkphp+smarty、lumen、yii等框架下开发

phpUnit单元测试

jenkins自动化集成测试

自动打包发布脚本编写

gerrit git workflow

大用户量、大并发下如何防止商品超卖,如何提高并发量

redis、lua相关开发

vagrant+homestead搭建php开发环境

ELK logstash抓日志、elasticsearch做日志索引、kabana做数据分析

linux常见命令使用tailf 、wc、watch

PHP源码学习计划1

计划:通过3个月时间把php源码学习完毕

今晚我只看了一个库https://github.com/php/php-svn-helpers
这个库只有两个shell脚步文件
作用是我们从github迁出php代码后需要提交到svn时,把git代码库转换为对应的git-svn库

文件内容非常简单

适合初学shell、git命令的同学阅读

========
更新:我又看了一个库https://github.com/php/pecl-file_system-phdfs
这个是pecl库中的php操作hdfs(Hadoop)的扩展
目测功能单一,不会太复杂

采用的是php license 3.0

P3P之殇

P3P:Platform for Privacy Preferences (P3P) (https://www.w3.org/P3P/)
P3P 计划是由服务端告知浏览器一系列多选项问题的答案组成的策略。

P3P规范也包含有用于请求和传输P3P策略的协议.P3P协议所基于的HTTP协议与 Web 浏览器用来与 Web服务器进行通信的 HTTP 协议相同。
不论在何时设置cookie都可以用特定的HTTP报头来传送一个可选的 P3P 简洁策略。

引自:http://www.cnblogs.com/_franky/archive/2011/03/16/1985954.html

大部分查询P3P资料的朋友都是在解决跨域ajax请求和跨域读写cookie两个事的时候偶然知道了这个名词,所以我就不多说了,直接上结论,其他的大家可以参考官方网站以及其他资料。

for IE developers
一些企业应用都是IE only,用P3P解决跨域问题可行,前提是浏览器仅限于IE7~10,做法就是在页面返回的http header中增加一行
P3P:CP=
因为IE对P3P简洁策略的支持,属于搞笑级别的.根本不看内容。(PS:再度引用上文资料)

FOR OTHERS
别看P3P了,兼容性完全不行,项目理念也有安全风险,也未作为正式标准进入http协议内容,甚至我的《松鼠·HTTP权威指南》里一句话都没提过。

对于同网站不同二级域名下解决跨域ajax请求和跨域读写cookie,想要兼容现代浏览器、移动浏览器的朋友,下面是我们整理的一套可行方案
1.设置cookie的domain为一级域名,如.ffan.com,*.ffan.com,ffan.com,此时,浏览器中cookie可以在任一二级三级域名的页面、图片、接口地址中获取到
2.使用jsonp代替json,json仅在同域名,相对路径下可以请求,否则有跨域问题,为此除了jsonp外还可以考虑在json输出前设定response http header 中Access-Control-Allow-Origin: *,不过要注意的是不能设置多次Access-Control-Allow-Origin,否则浏览器仍然不识别。
jsonp的方案所有参数均通过get方式明文传输,Access-Control-Allow-Origin方案需要小心的设置header,但支持get、post两种,可以按需选择。

“image/png” 和 “image/x-png”有哪些区别?

referer: http://stackoverflow.com/questions/2086374/what-is-the-difference-between-image-png-and-image-x-png
前缀 x- 是非标准的 MIME 类型 (例如:未在 IANA注册). 所以可以认为 image/x-png 是 PNG 类型未被标准化之前使用的

6.3. New Content-Transfer-Encodings

Implementors may, if necessary, define private Content-Transfer-Encoding values, but must use an x-token, which is a name prefixed by “X-”, to indicate its non-standard status, e. g., “Content-Transfer-Encoding: x-my-new-encoding”. Additional standardized Content-Transfer-Encoding values must be specified by a standards-track RFC. The requirements such specifications must meet are given in RFC 2048. As such, all content-transfer-encoding namespace except that beginning with “X-” is explicitly reserved to the IETF for future use.

—RFC 2045 — Multipurpose Internet Mail Extensions, Section 6.3
This is also documented in the PNG specification. See FalseVinylShrub’s answer.

根据W3C关于PNG的标准 http://www.w3.org/TR/PNG/#A-Media-type

“image/png” 是PNG格式网络媒体类型的 MIME 类型 [RFC-2045], [RFC-2048].同时也建议支持识别 MIME 类型 “image/x-png”.
所以, 如果你打算上传或是提供一个 PNG 图片, 该用’image/png’. 另外, 处理上传后文件等其他情况应该两种 MIME 类型都支持.

由于IE前些年一直在用”image/x-png”上传,所以造成了一些开发上的困扰。

一行命令解决composer下载问题

一行命令解决composer下载问题: composer config -g repositories.packagist composer https://packagist.phpcomposer.com

===
2016-3-21 更新说明(http://pkg.phpcomposer.com/)
本镜像已经依照 composer 官方的数据源安全策略完全升级并支持 https 协议!请各位同学 按照下面所示的两个方法将 http://packagist.phpcomposer.com 修改为 https://packagist.phpcomposer.com

今天我把chrome的网络设置改成了模拟2G网络

今天我把chrome的网络设置改成了模拟2G网络

今天我把chrome的网络设置改成了模拟2G网络

大家好,我是一个php web开发人员,我今天开发效率很低,因为我的chrome老提示我『正在等待可用的套接字』。

页面打开极其缓慢,这还怎么愉快的写bug,不,debug。直到我忍无可忍,我Google了一下,原来浏览器对一个网址同时最多发起6个请求链接,可以通过chrome://net-internals/#sockets 实时查看,似乎这个设置是硬性设置,无法修改,我陷入了困境。

万万没想到我最后还是解决了这个问题,我发现关了开发者工具打开速度就恢复正常了,然后仔细看了下面板的参数才想起之前把网络设置改成了模拟2G网络