正如書序中所說的,PHP核心技術(shù)與最佳實踐是一本面向突破瓶頸的php程序員的書。該書從與php相關(guān)不大的面向?qū)ο箝_始,接著談及了php網(wǎng)絡(luò)編程中設(shè)計到的一些重要概念,然后沿著php編程中常用的php-mysql-模板這樣的技術(shù)路線大致說明,接著探討了寫php內(nèi)核中的一些概念,最后重點講解了網(wǎng)絡(luò)編程中的各種緩存技術(shù)和網(wǎng)站優(yōu)化。這本書很適合PHP進階,讓你對PHP web開發(fā)中遇到的一些原理還概念有一個全面的了解,值得買回來細細品味!本節(jié)內(nèi)容東坡小編為大家整理帶來的是一份pdf格式高清完整版php核心技術(shù)與最佳實踐電子書,需要查閱的朋友點擊本文相應(yīng)的下載地址進行下載即可!
php核心技術(shù)與最佳實踐目錄
前言
第1章 面向?qū)ο笏枷氲暮诵母拍?/p>
1.1 面向?qū)ο蟮摹靶巍迸c“本”
1.1.1 對象的“形”
1.1.2 對象的“本”
1.1.3 對象與數(shù)組
1.1.4 對象與類
1.2 魔術(shù)方法的應(yīng)用
1.2.1 set和get方法
1.2.2 call和callStatic方法
1.2.3 toString方法
1.3 繼承與多態(tài)
1.3.1 類的組合與繼承
1.3.2 各種語言中的多態(tài)
1.4 面向接口編程
1.4.1 接口的作用
1.4.2 對PHP接口的思考
1.5 反射
1.5.1 如何使用反射API
1.5.2 反射有什么作用
1.6 異常和錯誤處理
1.6.1 如何使用異常處理機制
1.6.2 怎樣看PHP的異常
1.6.3 PHP中的錯誤級別
1.6.4 PHP中的錯誤處理機制
1.7 本章小結(jié)
第2章 面向?qū)ο蟮脑O(shè)計原則
2.1 面向?qū)ο笤O(shè)計的五大原則
2.1.1 單一職責(zé)原則
2.1.2 接口隔離原則
2.1.3 開放-封閉原則
2.1.4 替換原則
2.1.5 依賴倒置原則
2.2 一個面向?qū)ο罅粞员镜膶嵗?/p>
2.3 面向?qū)ο蟮乃伎?/p>
2.4 本章小結(jié)
第3章 正則表達式基礎(chǔ)與應(yīng)用
3.1 認(rèn)識正則表達式
3.1.1 PHP中的正則函數(shù)
3.1.2 正則表達式的組成
3.1.3 測試工具的使用
3.2 正則表達式中的元字符
3.2.1 什么是元字符
3.2.2 起始和結(jié)束元字符
3.2.3 點號
3.2.4 量詞
3.3 正則表達式匹配規(guī)則
3.3.1 字符組
3.3.2 轉(zhuǎn)義
3.3.3 反義
3.3.4 分支
3.3.5 分組
3.3.6 反向引用
3.3.7 環(huán)視
3.3.8 貪婪懶惰匹配模式
3.4 構(gòu)造正則表達式
3.4.1 正則表達式的邏輯關(guān)系
3.4.2 運算符優(yōu)先級
3.4.3 正則表達式的常用模式
3.5 正則在實際開發(fā)中的應(yīng)用
3.5.1 移動手機校驗
3.5.2 匹配E-mail地址
3.5.3 轉(zhuǎn)義在數(shù)據(jù)安全中的應(yīng)用
3.5.4 URL重寫與搜索引擎優(yōu)化
3.5.5 刪除文件中的空行和注釋
3.6 正則表達式的效率與優(yōu)化
3.7 本章小結(jié)
第4章 PHP網(wǎng)絡(luò)技術(shù)及應(yīng)用
4.1 HTTP協(xié)議詳解
4.1.1 HTTP協(xié)議與SPDY協(xié)議
4.1.2 HTTP協(xié)議如何工作
4.1.3 HTTP應(yīng)用:模擬灌水機器人
4.1.4 垃圾信息防御措施
4.2 抓包工具
4.2.1 抓包工具分類
4.2.2 Fiddler功能與原理
4.2.3 安裝Fiddler
4.2.4 Fiddler基本界面
4.2.5 使用Fiddler進行HTTP斷點調(diào)試
4.3 Socket進程通信機制及應(yīng)用
4.3.1 進程通信相關(guān)概念
4.3.2 Socket演示:實現(xiàn)服務(wù)器端與客戶端的交互
4.3.3 Socket函數(shù)原型
4.3.4 PHP中的Socket函數(shù)
4.3.5 Socket交互應(yīng)用:使用Socket抓取數(shù)據(jù)
4.4 cURL工具及應(yīng)用
4.4.1 建立cURL請求的基本步驟
4.4.2 檢查cURL錯誤和獲取返回信息
4.4.3 在cURL中偽造頭信息
4.4.4 在cURL中用POST方法發(fā)送數(shù)據(jù)
4.4.5 使用cURL上傳文件
4.4.6 cURL批處理
4.4.7 cURL設(shè)置項
4.4.8 網(wǎng)絡(luò)應(yīng)用:使用cURL抓取騰訊微博
4.5 簡單郵件傳輸協(xié)議SMTP
4.5.1 SMTP協(xié)議如何工作
4.5.2 SMTP協(xié)議常用命令
4.5.3 SMTP協(xié)議應(yīng)用:使用Socket發(fā)送郵件
4.6 WebService的前世今生
4.6.1 WebService簡介
4.6.2 認(rèn)識PHPRPC協(xié)議
4.6.3 Web服務(wù)的實現(xiàn)模式
4.6.4 簡單對象訪問協(xié)議SOAP
4.6.5 調(diào)試工具soapUI
4.7 Cookie詳解
4.7.1 Cookie的基本概念及設(shè)置
4.7.2 PHP和JavaScript對Cookie的操作
4.7.3 Cookie存儲機制及應(yīng)用
4.7.4 Cookie跨域與P3P協(xié)議
4.7.5 本地存儲localStorage
4.8 Session詳解
4.8.1 Session的基本概念及設(shè)置
4.8.2 Session的工作原理
4.8.3 Session入庫
4.8.4 Cookie與Session問答
4.9 本章小結(jié)
第5章 PHP與數(shù)據(jù)庫基礎(chǔ)
5.1 什么是PDO
5.1.1 PDO預(yù)定義類
5.1.2 如何使用PDO
5.1.3 PDO參數(shù)綁定與預(yù)編譯
5.1.4 PDO事務(wù)處理
5.1.5 PDO的效率問題
5.2 數(shù)據(jù)庫應(yīng)用優(yōu)化
5.2.1 基本語句優(yōu)化10個原則
5.2.2 索引與性能分析
5.2.3 服務(wù)器和配置的優(yōu)化
5.2.4 MySQL瓶頸及應(yīng)對措施
5.3 數(shù)據(jù)庫設(shè)計
5.3.1 范式與反范式
5.3.2 數(shù)據(jù)庫分區(qū)
5.3.3 分表的應(yīng)用
5.4 MySQL的高級應(yīng)用
5.4.1 MySQL自增長序列
5.4.2 MySQL視圖
5.4.3 MySQL存儲過程和事件調(diào)度
5.4.4 用MySQL模擬消息隊列
5.4.5 SQL注入漏洞與防范
5.5 本章小結(jié)
第6章 PHP模板引擎的原理與實踐
6.1 代碼分層的思想
6.2 實現(xiàn)一個簡單的模板引擎骨架
6.2.1 搭建模板引擎基礎(chǔ)類骨架
6.2.2 編譯類骨架
6.2.3 測試模板引擎
6.3 模板引擎的編譯
6.3.1 實現(xiàn)變量標(biāo)簽
6.3.2 實現(xiàn)foreach標(biāo)簽
6.3.3 實現(xiàn)if…else標(biāo)簽
6.3.4 對PHP原生語法的支持
6.4 完善模板引擎
6.4.1 模板緩存機制的實現(xiàn)
6.4.2 調(diào)試和緩存清理
6.4.3 如何使用模板
6.5 常用模板引擎
6.5.1 Discuz模板引擎
6.5.2 Smarty模板引擎
6.5.3 DedeCms模板引擎
6.5.4 Blitz模板引擎
6.5.5 模板引擎的一些思考
6.6 本章小結(jié)
第7章 PHP擴展開發(fā)
7.1 為什么要開發(fā)PHP擴展
7.2 搭建PHP擴展框架
7.2.1 PHP源代碼目錄
7.2.2 ext_skel工具
7.2.3 Windows平臺環(huán)境配置
7.2.4 Linux平臺環(huán)境配置
7.2.5 PHP的生命周期
7.3 PHP內(nèi)核中的變量
7.3.1 PHP變量在內(nèi)核中的存儲方式
7.3.2 PHP內(nèi)核變量訪問宏
7.3.3 引用計數(shù)器與寫時復(fù)制
7.4 PHP內(nèi)核中的HashTable分析
7.4.1 PHP內(nèi)核HashTable的數(shù)據(jù)結(jié)構(gòu)
7.4.2 HashTable的代碼實現(xiàn)
7.5 Zend API詳解與擴展編寫
7.5.1 什么是Zend引擎
7.5.2 Zend引擎內(nèi)存管理
7.5.3 PHP擴展的架構(gòu)
7.5.4 接收用戶傳遞的參數(shù)
7.5.5 在PHP擴展中創(chuàng)建變量
7.5.6 在PHP擴展中為變量賦值
7.5.7 錯誤和輸出API
7.5.8 運行時信息函數(shù)
7.5.9 調(diào)用用戶自定義函數(shù)
7.5.10 PHP配置項
7.5.11 創(chuàng)建常量的宏
7.6 編寫一個完整的擴展
7.6.1 鏈表結(jié)構(gòu)的實現(xiàn)
7.6.2 創(chuàng)建PHP擴展框架
7.6.3 編寫代碼
7.6.4 編譯安裝擴展
7.6.5 測試擴展
7.7 本章小結(jié)
第8章 緩存詳解
8.1 認(rèn)識緩存
8.1.1 為什么使用緩存
8.1.2 命中率
8.1.3 緩存更新策略
8.1.4 緩存最大數(shù)據(jù)量
8.2 文件緩存
8.2.1 文件緩存機制
8.2.2 文件緩存開源產(chǎn)品Secache
8.3 Opcode緩存
8.3.1 eAccelerator下載及使用
8.3.2 如何查看Opcode
8.4 客戶端緩存
8.4.1 客戶端緩存規(guī)則
8.4.2 HTTP協(xié)議中的緩存使用
8.4.3 HTTP緩存實例
8.4.4 HTML 5中的Application Cache
8.5 Web服務(wù)器緩存
8.5.1 Apache緩存
8.5.2 Nginx緩存
8.6 本章小結(jié)
第9章 Memcached使用與實踐
9.1 為什么要用Memcached
9.2 Memcached的安裝及使用
9.2.1 安裝Memcached服務(wù)器
9.2.2 安裝Memcached客戶端
9.2.3 使用memcache擴展訪問Memcached服務(wù)器
9.2.4 使用Memcached加速Web應(yīng)用
9.3 深入了解Memcached
9.3.1 Memcached如何支持高并發(fā)
9.3.2 使用Slab分配算法保存數(shù)據(jù)
9.3.3 刪除過期item
9.3.4 使用LRU算法淘汰數(shù)據(jù)
9.3.5 Memcached多線程模型
9.4 Memcached分布式布置方案
9.4.1 普通Hash分布
9.4.2 一致性Hash分布
9.4.3 一致性Hash分布算法實例
9.5 本章小結(jié)
第10章 Redis使用與實踐
10.1 Redis的安裝及使用
10.1.1 Redis安裝步驟
10.1.2 修改Redis配置文件
10.1.3 運行Redis服務(wù)器
10.1.4 key相關(guān)命令
10.1.5 Redis支持的數(shù)據(jù)類型
10.1.6 Redis排序命令詳解
10.2 事務(wù)處理
10.2.1 事務(wù)處理原理
10.2.2 事務(wù)處理實現(xiàn)
10.3 持久化
10.3.1 內(nèi)存快照
10.3.2 日志追加
10.4 主從同步
10.4.1 Redis主從同步原理
10.4.2 Slave端的工作流程
10.4.3 Master端的工作流程
10.5 虛擬內(nèi)存
10.5.1 配置文件信息
10.5.2 開啟VM的后臺操作
10.5.3 Redis Object和VM Pointer
10.5.4 交換過程
10.5.5 阻塞式VM
10.5.6 非阻塞式VM
10.6 擴展庫phpredis安裝及使用
10.7 Redis應(yīng)用實踐
10.7.1 使用消息隊列發(fā)布微博
10.7.2 Redis替代文件存儲Session
10.8 深入了解Redis內(nèi)核
10.8.1 內(nèi)存淘汰
10.8.2 對象引用計數(shù)器
10.8.3 自動關(guān)閉超時連接
10.8.4 清除過期數(shù)據(jù)
10.9 本章小結(jié)
第11章 高性能網(wǎng)站架構(gòu)方案
11.1 如何優(yōu)化網(wǎng)站響應(yīng)時間
11.1.1 吞吐率
11.1.2 壓力測試
11.1.3 持久連接
11.2 MySQL響應(yīng)速度提高方案:HandlerSocket
11.2.1 HandlerSocket工作原理
11.2.2 HandlerSocket安裝和配置
11.2.3 PHP-HandlerSocket性能測試
11.3 MySQL穩(wěn)定性提高方案:主從復(fù)制
11.3.1 主從復(fù)制工作原理
11.3.2 主從復(fù)制配置
11.3.3 連接主從服務(wù)器
11.4 Web應(yīng)用加速方案:Varnish
11.4.1 傳統(tǒng)代理與反向代理
11.4.2 Varnish安裝和配置
11.4.3 Varnish性能測試
11.4.4 修改緩存規(guī)則
11.4.5 監(jiān)控Varnish運行狀態(tài)
11.5 異步計算方案:Gearman
11.5.1 Gearman工作原理
11.5.2 安裝Gearman和PHP擴展
11.5.3 使用Gearman異步發(fā)送郵件
11.6 本章小結(jié)
第12章 代碼調(diào)試和測試
12.1 調(diào)試PHP代碼
12.1.1 PHP調(diào)試函數(shù)
12.1.2 斷點調(diào)試與變量跟蹤工具Xdebug
12.2 前端調(diào)試
12.2.1 Firebug調(diào)試API
12.2.2 使用Firebug調(diào)試DOM結(jié)構(gòu)
12.2.3 使用Firebug調(diào)試JavaScript
12.2.4 使用Fiddler調(diào)試遠程服務(wù)器上的文件
12.3 日志管理
12.3.1 PHP日志
12.3.2 Apache服務(wù)器日志
12.3.3 MySQL日志
12.4 代碼性能測試技術(shù)
12.4.1 時間點測試
12.4.2 文件查看工具WinCacheGrind
12.4.3 性能測試注意事項
12.5 單元測試
12.5.1 單元測試框架PHPUnit的安裝
12.5.2 結(jié)合NetBeans使用PHPUnit進行單元測試
12.5.3 PHPUnit中的斷言函數(shù)
12.5.4 PHPUnit常用方法
12.5.5 PHPUnit常用注解
12.6 壓力測試
12.6.1 使用JMeter壓力測試HTTP
12.6.2 壓力測試MySQL
12.6.3 JMeter+Badboy組合測試
12.7 本章小結(jié)
第13章 Hash算法與數(shù)據(jù)庫實現(xiàn)
13.1 Hash函數(shù)
13.2 Hash算法
13.2.1 直接取余法
13.2.2 乘積取整法
13.2.3 經(jīng)典Hash算法Times33
13.3 Hash表
13.3.1 Hash表結(jié)構(gòu)
13.3.2 使用PHP實現(xiàn)Hash表
13.3.3 Hash表沖突
13.3.4 拉鏈法解決沖突
13.4 一個小型數(shù)據(jù)庫的實現(xiàn)
13.4.1 pack函數(shù)的用法
13.4.2 unpack函數(shù)的用法
13.4.3 索引文件和數(shù)據(jù)文件
13.4.4 數(shù)據(jù)庫接口方法
13.4.5 源代碼解析
13.4.6 測試代碼
13.5 本章小結(jié)
第14章 PHP編碼規(guī)范
14.1 文件格式
14.1.1 文件標(biāo)記
14.1.2 文件和目錄命名
14.1.3 文件目錄結(jié)構(gòu)
14.2 命名規(guī)范
14.2.1 變量命名
14.2.2 類及接口命名
14.2.3 數(shù)據(jù)庫命名
14.2.4 習(xí)慣與約定
14.3 注釋規(guī)范
14.3.1 程序注釋
14.3.2 文件注釋
14.3.3 類接口注釋
14.3.4 方法和函數(shù)注釋
14.3.5 標(biāo)注的使用
14.4 代碼風(fēng)格
14.4.1 縮進和空格
14.4.2 語句斷行
14.4.3 更好的習(xí)慣
14.5 本章小結(jié)
PHP核心技術(shù)與最佳實踐內(nèi)容簡介
是一本致力于為希望成為中高級PHP程序員的讀者提供高效而有針對性指導(dǎo)的經(jīng)典著作。系統(tǒng)歸納和深刻解讀了PHP開發(fā)中的編程思想、底層原理、核心技術(shù)、開發(fā)技巧、編碼規(guī)范和最佳實踐。全書分為5個部分:第一部分(1~2章)從不同的角度闡述了面向?qū)ο筌浖O(shè)計思想的核心概念、技術(shù)和原則,分析了面向?qū)ο蟮奶匦、設(shè)計模式的理念,指出了如何設(shè)計低耦合、高可擴展性的軟件,等等;第二部分(3~6章)詳細講解了PHP中正則表達式的規(guī)范和使用技巧,PHP網(wǎng)絡(luò)編程的原理、方法、技巧和一些重要的操作,PDO、數(shù)據(jù)庫應(yīng)用優(yōu)化,數(shù)據(jù)庫設(shè)計和MySQL的高級應(yīng)用,PHP擴展引擎的原理與實踐;第三部分(第7章)撥云見日,圍繞PHP擴展開發(fā)進行了細致而深入的探討,解析了PHP的底層實現(xiàn)和Zend虛擬機API,并用PHP擴展開發(fā)的實例帶領(lǐng)讀者走進PHP的底層世界,旨在讓讀者對PHP性能優(yōu)化、底層原理進行深入的理解。第四部分(8~11章)重點討論了緩存的設(shè)計、Memcached的原理與實踐、NoSQL數(shù)據(jù)庫Redis源碼分析與應(yīng)用實踐、高性能PHP網(wǎng)站的架構(gòu)和設(shè)計等內(nèi)容;第五部分(12~14章)詳細講解了PHP代碼的調(diào)試和測試、Hash算法和數(shù)據(jù)庫的實現(xiàn),以及PHP的編碼規(guī)范,旨在幫助讀者提高開發(fā)效率,養(yǎng)成良好編程習(xí)慣。