一、搭建環(huán)境 二、PHP7新特性 A.OOP特性 1.類型聲明
2.命名空間與use關(guān)鍵字批量聲明
3.匿名類
4.Throwable接口
B.新的操作符 1.太空船操作符(<=>)
2.null合并運(yùn)算符(??)
3.統(tǒng)一變量語法 C.其他特性和變更 1.常量數(shù)組:const STORES = ['en’, ’fr’, 'ar’]; php7:define(’STORES’,['en’, ’fr’, 'ar’]); 2.Switch中的多個default默認(rèn)值,在php7中會產(chǎn)生Fatal級別的錯誤 3.Session_start函數(shù)中的選項數(shù)組:可以在調(diào)用session_start([...])傳遞參數(shù)選項數(shù)組,這些設(shè)置信息將覆蓋php.ini中的session配置 4.Unserialize函數(shù)引入過濾器 三、PHP7應(yīng)用性能提升 A.HTTP Server優(yōu)化 1.緩存靜態(tài)文件 2.HTTP持久鏈接:表示一條TCP/IP鏈接上承載著多個上下行請求 3.GZIP壓縮 4.PHP獨立部署服務(wù) 5.關(guān)閉不用的模塊 B.內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN) 1.CDN網(wǎng)絡(luò)通常服務(wù)于媒體文件 C.CSS與JavaScript優(yōu)化 1.合并:將所有CSS、JS文件進(jìn)行合并 2.縮?。簞h除空行、注釋和額外空格 3.Minify:是一組完全使用PHP編寫的庫,支持CSS、JavaScript文件的合并與縮小,代碼是面向?qū)ο蠛兔臻g的 4.Grunt:是一個JavaScript任務(wù)運(yùn)行器,能夠?qū)⒛承┲貜?fù)的任務(wù)自動化,避免反復(fù)工作 5..全頁緩存 6.Varnish:開源的Web應(yīng)用程序加速器 D.基礎(chǔ)設(shè)施 1.Web服務(wù)器 2.數(shù)據(jù)庫服務(wù)器 3.負(fù)載均衡(LB)
四、提升數(shù)據(jù)庫性能 A.MySQL 1.查詢緩存
2.存儲引擎
3.Percona Server - MySQL的fork
4.MySQL性能監(jiān)控工具
B.Redis鍵值緩存存儲 C.Memcached鍵值緩存存儲 五、調(diào)試和分析 A.Xdebug 六、PHP應(yīng)用的壓力/負(fù)載測試 A.Apache JMeter B.ApacheBench(ab) C.Siege 七、PHP編程最佳實踐 A.代碼風(fēng)格 1.類名中每個單詞的首字母必須大寫,左大括號應(yīng)該在類名后新起一行,右大括號應(yīng)該在類結(jié)束后新起一行 2.類的方法和函數(shù)命名應(yīng)該是駝峰式的,參數(shù)和緊跟著的逗號之間不應(yīng)有空格 3.命名空間的聲明之后應(yīng)該空一行 4.Visibility類的所有屬性都應(yīng)該明確指出其可見性并且屬性名應(yīng)該是駝峰式的 5.要是有abstract關(guān)鍵字的話,則一定是在class關(guān)鍵字之前 的,final關(guān)鍵字則應(yīng)該在方法可見性之前,static關(guān)鍵字是在方法可見性之后的 6.所有PHP關(guān)鍵字都應(yīng)該小寫,包括true和false,常量應(yīng)該都大寫 7.對于所有控制結(jié)構(gòu)語句,控制結(jié)構(gòu)關(guān)鍵詞后都應(yīng)該有空格,表達(dá) 式和外面的括號之間不應(yīng)該有空格, B.測試驅(qū)動開發(fā) 1.PHPUnit C.部署和持續(xù)集成(CI) 1.PHPCI 2.Jenkins 3.Travis CI https://github.com/zhangyue0503/php/tree/master/learningphp7highperformance/2 |
|