一、搭建环境
二、PHP7新特性
A.OOP特性
1.类型声明
2.命名空间与use关键字批量声明
3.匿名类
4.Throwable接口
B.新的操作符
1.太空船操作符(<=>)
2.null合并运算符(??)
3.统一变量语法
C.其他特性和变更
1.常量数组:const STORES = [‘en’, ’fr’, ‘ar’]; php7:define(’STORES’,[‘en’, ’fr’, ‘ar’]);
2.Switch中的多个default默认值,在php7中会产生Fatal级别的错误
3.Session_start函数中的选项数组:可以在调用session_start([...])传递参数选项数组,这些设置信息将覆盖php.ini中的session配置
4.Unserialize函数引入过滤器
三、PHP7应用性能提升
A.HTTP Server优化
1.缓存静态文件
2.HTTP持久链接:表示一条TCP/IP链接上承载着多个上下行请求
3.GZIP压缩
4.PHP独立部署服务
5.关闭不用的模块
B.内容分发网络(CDN)
1.CDN网络通常服务于媒体文件
C.CSS与JavaScript优化
1.合并:将所有CSS、JS文件进行合并
2.缩小:删除空行、注释和额外空格
3.Minify:是一组完全使用PHP编写的库,支持CSS、JavaScript文件的合并与缩小,代码是面向对象和命名空间的
4.Grunt:是一个JavaScript任务运行器,能够将某些重复的任务自动化,避免反复工作
5..全页缓存
6.Varnish:开源的Web应用程序加速器
D.基础设施
1.Web服务器
2.数据库服务器
3.负载均衡(LB)
四、提升数据库性能
A.MySQL
1.查询缓存
2.存储引擎
3.Percona Server - MySQL的fork
4.MySQL性能监控工具
B.Redis键值缓存存储
C.Memcached键值缓存存储
五、调试和分析
A.Xdebug
六、PHP应用的压力/负载测试
A.Apache JMeter
B.ApacheBench(ab)
C.Siege
七、PHP编程最佳实践
A.代码风格
1.类名中每个单词的首字母必须大写,左大括号应该在类名后新起一行,右大括号应该在类结束后新起一行
2.类的方法和函数命名应该是驼峰式的,参数和紧跟着的逗号之间不应有空格
3.命名空间的声明之后应该空一行
4.Visibility类的所有属性都应该明确指出其可见性并且属性名应该是驼峰式的
5.要是有abstract关键字的话,则一定是在class关键字之前 的,final关键字则应该在方法可见性之前,static关键字是在方法可见性之后的
6.所有PHP关键字都应该小写,包括true和false,常量应该都大写
7.对于所有控制结构语句,控制结构关键词后都应该有空格,表达 式和外面的括号之间不应该有空格,
B.测试驱动开发
1.PHPUnit
C.部署和持续集成(CI)
1.PHPCI
2.Jenkins
3.Travis CI
https://github.com/zhangyue0503/php/tree/master/learningphp7highperformance/2