注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)PHP核心技術(shù)與最佳實(shí)踐(第2版)

PHP核心技術(shù)與最佳實(shí)踐(第2版)

PHP核心技術(shù)與最佳實(shí)踐(第2版)

定 價(jià):¥129.00

作 者: 列旭松 陳文 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): Web開發(fā)技術(shù)叢書
標(biāo) 簽: 暫缺

ISBN: 9787111608417 出版時(shí)間: 2018-09-01 包裝: 平裝
開本: 16開 頁數(shù): 581 字?jǐn)?shù):  

內(nèi)容簡介

  內(nèi)容簡介 PHP領(lǐng)域公認(rèn)的標(biāo)桿之作,被譽(yù)為“PHP開發(fā)工程師能力進(jìn)階的必讀書”,致力于為希望成為中高級PHP程序員的讀者提供全面、高效的指導(dǎo)。 本書第1版出版于2012年,累計(jì)印刷超過10次,6年后全新升級,一方面根據(jù)PHP技術(shù)新的發(fā)展刪除和更新了一些過時(shí)的內(nèi)容,另一方面對原來的部分內(nèi)容作了深度優(yōu)化。 全書共13章,邏輯上分為5個(gè)部分: 部分(1~2章):從不同的角度闡述了面向?qū)ο筌浖O(shè)計(jì)思想的核心概念、技術(shù)和原則,分析了面向?qū)ο蟮奶匦?、設(shè)計(jì)模式的理念,指出了如何設(shè)計(jì)低耦合、高可擴(kuò)展性的軟件,等等。 第二部分(3~6章):詳細(xì)講解了PHP網(wǎng)絡(luò)編程的原理、方法、技巧和一些重要的操作,PDO、數(shù)據(jù)庫應(yīng)用優(yōu)化,數(shù)據(jù)庫設(shè)計(jì)和MySQL的高級應(yīng)用,PHP框架的實(shí)現(xiàn)原理。 第三部分(第7章):圍繞PHP擴(kuò)展開發(fā)進(jìn)行了細(xì)致而深入的探討,解析了PHP的底層實(shí)現(xiàn)和Zend虛擬機(jī)API,并用PHP擴(kuò)展開發(fā)的實(shí)例帶領(lǐng)讀者走進(jìn)PHP的底層世界,旨在讓讀者對PHP性能優(yōu)化、底層原理進(jìn)行深入的理解。 第四部分(8~10章):重點(diǎn)討論了緩存的設(shè)計(jì)、Memcached的原理與實(shí)踐、NoSQL數(shù)據(jù)庫Redis源碼分析與應(yīng)用實(shí)踐等內(nèi)容。 第五部分(12~13章)詳細(xì)講解了PHP代碼的調(diào)試和測試、Hash算法和數(shù)據(jù)庫的實(shí)現(xiàn)。

作者簡介

  放排好的目錄和宣傳語

圖書目錄

前言
第1章 面向?qū)ο笏枷氲暮诵母拍?
1.1 面向?qū)ο蟮摹靶巍迸c“本”2
1.1.1 對象的“形”2
1.1.2 對象的“本”4
1.1.3 對象與數(shù)組6
1.1.4 對象與類6
1.2 魔術(shù)方法的應(yīng)用8
1.2.1 set和get方法8
1.2.2 call和callStatic方法…11
1.2.3 toString方法和debugInfo方法13
1.3 命名空間與自動(dòng)加載18
1.3.1 理解命名空間18
1.3.2 自動(dòng)加載21
1.4 繼承與多態(tài)21
1.4.1 類的組合與繼承22
1.4.2 各種語言中的多態(tài)26
1.5 面向接口編程30
1.5.1 接口的作用30
1.5.2 對PHP接口的思考32
1.6 反射35
1.6.1 如何使用反射API35
1.6.2 反射有什么作用37
1.7 異常和錯(cuò)誤處理39
1.7.1 如何使用異常處理機(jī)制39
1.7.2 怎樣看PHP的異常45
1.7.3 PHP中的錯(cuò)誤級別45
1.7.4 PHP中的錯(cuò)誤處理機(jī)制47
1.7.5 PHP7對異常機(jī)制的改進(jìn)49
1.8 本章小結(jié)53
第2章 面向?qū)ο蟮脑O(shè)計(jì)原則54
2.1 面向?qū)ο笤O(shè)計(jì)的五大原則55
2.1.1 單一職責(zé)原則55
2.1.2 接口隔離原則63
2.1.3 開放-封閉原則66
2.1.4 替換原則69
2.1.5 依賴倒置原則71
2.2 一個(gè)面向?qū)ο罅粞员镜膶?shí)例73
2.3 面向?qū)ο蟮乃伎?7
2.4 本章小結(jié)78
第3章 PHP網(wǎng)絡(luò)技術(shù)及應(yīng)用79
3.1 HTTP協(xié)議詳解79
3.1.1 HTTP協(xié)議與HTTP/2協(xié)議…79
3.1.2 HTTP協(xié)議如何工作81
3.1.3 HTTP應(yīng)用:模擬灌水機(jī)器人86
3.1.4 垃圾信息防御措施92
3.2 抓包工具96
3.2.1 抓包工具分類96
3.2.2 Fiddler功能與原理96
3.2.3 安裝Fiddler97
3.2.4 Fiddler基本界面98
3.2.5 使用Fiddler進(jìn)行HTTP斷點(diǎn)調(diào)試101
3.3 Socket進(jìn)程通信機(jī)制及應(yīng)用104
3.3.1 進(jìn)程通信相關(guān)概念104
3.3.2 Socket演示:實(shí)現(xiàn)服務(wù)器端與客戶端的交互105
3.3.3 使用wireshar分析TCP/IP數(shù)據(jù)包108
3.3.4 Socket函數(shù)原型114
3.3.5 PHP中的Socket函數(shù)114
3.3.6 Socket交互應(yīng)用:使用Socket抓取數(shù)據(jù)117
3.4 cURL工具及應(yīng)用119
3.4.1 建立cURL請求的基本步驟119
3.4.2 檢查cURL錯(cuò)誤和獲取返回信息120
3.4.3 在cURL中偽造頭信息122
3.4.4 在cURL中用POST方法發(fā)送數(shù)據(jù)124
3.4.5 使用cURL實(shí)現(xiàn)簡單的文件上傳服務(wù)125
3.4.6 cURL批處理129
3.4.7 cURL設(shè)置項(xiàng)130
3.5 簡單郵件傳輸協(xié)議SMTP131
3.5.1 SMTP協(xié)議如何工作132
3.5.2 SMTP協(xié)議常用命令133
3.5.3 SMTP協(xié)議應(yīng)用:使用Socket發(fā)送郵件133
3.6 WebService的前世今生138
3.6.1 WebService簡介138
3.6.2 Web服務(wù)的實(shí)現(xiàn)模式138
3.6.3 簡單對象訪問協(xié)議SOAP…140
3.6.4 調(diào)試工具soapUI145
3.7 Cookie詳解148
3.7.1 Cookie的基本概念及設(shè)置…148
3.7.2 PHP和JavaScript對Cookie的操作149
3.7.3 Cookie存儲(chǔ)機(jī)制及應(yīng)用151
3.7.4 Cookie跨域與P3P、CORS協(xié)議153
3.7.5 本地存儲(chǔ)localStorage156
3.8 Session詳解158
3.8.1 Session的基本概念及設(shè)置158
3.8.2 Session的工作原理159
3.8.3 Session入庫161
3.8.4 集群環(huán)境下的Session處理165
3.8.5 Cookie與Session問答166
3.9 本章小結(jié)167
第4章 RPC與服務(wù)治理的概念169
4.1 理解RPC170
4.1.1 RPC的原理171
4.1.2 RPC的組成元素172
4.2 HPROSE的介紹174
4.3 何為服務(wù)治理176
4.4 服務(wù)發(fā)現(xiàn)與服務(wù)注冊177
4.4.1 Paxos協(xié)議178
4.4.2 ZooKeeper的介紹與安裝…179
4.4.3 深入了解ZooKeeper180
4.4.4 ZooKeeper的應(yīng)用183
4.4.5 etcd的介紹185
4.4.6 在PHP中使用etcd參與服務(wù)治理187
4.5 高性能網(wǎng)絡(luò)庫193
4.6 微服務(wù)概念簡介194
4.7 本章小結(jié)196
第5章 PHP與數(shù)據(jù)庫基礎(chǔ)197
5.1 什么是PDO197
5.1.1 PDO預(yù)定義類198
5.1.2 如何使用PDO199
5.1.3 PDO參數(shù)綁定與預(yù)編譯200
5.1.4 PDO事務(wù)處理205
5.1.5 PDO的效率問題206
5.2 數(shù)據(jù)庫應(yīng)用優(yōu)化206
5.2.1 索引與性能分析206
5.2.2 服務(wù)器和配置的優(yōu)化209
5.2.3 MySQL瓶頸及應(yīng)對措施211
5.3 數(shù)據(jù)庫設(shè)計(jì)212
5.3.1 范式與反范式212
5.3.2 數(shù)據(jù)庫分區(qū)213
5.3.3 分表的應(yīng)用215
5.4 MySQL的高級應(yīng)用217
5.4.1 MySQL視圖217
5.4.2 MySQL存儲(chǔ)過程和事件調(diào)度220
5.4.3 用MySQL模擬消息隊(duì)列223
5.4.4 SQL注入漏洞與防范226
5.4.5 MySQL全文搜索與Elasticsearch231
5.5 數(shù)據(jù)庫鎖與事務(wù)239
5.5.1 數(shù)據(jù)庫鎖239
5.5.2 數(shù)據(jù)庫事務(wù)246
5.5.3 分布式事務(wù)254
5.6 數(shù)據(jù)庫中間件257
5.6.1 中間件的介紹257
5.6.2 數(shù)據(jù)庫中間件的原理與實(shí)現(xiàn)257
5.7 本章小結(jié)263
第6章 PHP框架實(shí)現(xiàn)原理264
6.1 MVC模式264
6.2 PHP框架Lonicera 0.1265
6.2.1 實(shí)現(xiàn)bootstrap267
6.2.2 路由器層的實(shí)現(xiàn)269
6.2.3 數(shù)據(jù)模型274
6.2.4 視圖層實(shí)現(xiàn)282
6.2.5 對框架的初步改進(jìn)286
6.3 Lonicera 0.2框架增強(qiáng)290
6.3.1 引入異常機(jī)制290
6.3.2 攔截器和插件的原理與實(shí)現(xiàn)293
6.3.3 Request增強(qiáng)與安全防御296
6.4 Lonicera框架0.3版實(shí)現(xiàn)297
6.4.1 composer的介紹與安裝297
6.4.2 composer的類加載機(jī)制301
6.4.3 使用composer來重構(gòu)框架303
6.4.4 基于composer的Model增強(qiáng)307
6.4.5 控制反轉(zhuǎn)與依賴注入309
6.5 本章小結(jié)318
第7章 PHP擴(kuò)展開發(fā)319
7.1 為什么要開發(fā)PHP擴(kuò)展319
7.2 搭建PHP擴(kuò)展框架319
7.2.1 PHP源代碼目錄320
7.2.2 ext_skel工具320
7.2.3 Windows平臺(tái)環(huán)境配置320
7.2.4 Linux平臺(tái)環(huán)境配置323
7.2.5 PHP的生命周期325
7.3 PHP內(nèi)核中的變量327
7.3.1 PHP變量在內(nèi)核中的存儲(chǔ)方式327
7.3.2 PHP內(nèi)核變量訪問宏329
7.3.3 引用計(jì)數(shù)器與寫時(shí)復(fù)制330
7.4 PHP內(nèi)核中的HashTable分析…332
7.4.1 PHP內(nèi)核HashTable的數(shù)據(jù)結(jié)構(gòu)332
7.4.2 HashTable的代碼實(shí)現(xiàn)337
7.5 Zend API詳解與擴(kuò)展編寫341
7.5.1 什么是Zend引擎342
7.5.2 Zend引擎內(nèi)存管理342
7.5.3 PHP擴(kuò)展的架構(gòu)342
7.5.4 接收用戶傳遞的參數(shù)350
7.5.5 在PHP擴(kuò)展中創(chuàng)建變量357
7.5.6 在PHP擴(kuò)展中為變量賦值…360
7.5.7 錯(cuò)誤和輸出API371
7.5.8 運(yùn)行時(shí)信息函數(shù)374
7.5.9 調(diào)用用戶自定義函數(shù)374
7.5.10 PHP配置項(xiàng)376
7.5.11 創(chuàng)建常量的宏379
7.5.12 對象創(chuàng)建與操作380
7.6 唯一ID生成擴(kuò)展實(shí)現(xiàn)383
7.6.1 snowflake算法384
7.6.2 自旋鎖原理385
7.6.3 擴(kuò)展的實(shí)現(xiàn)387
7.7 本章小結(jié)389
第8章 緩存詳解390
8.1 認(rèn)識(shí)緩存390
8.1.1 為什么使用緩存390
8.1.2 命中率391
8.1.3 緩存更新策略392
8.1.4 緩存最大數(shù)據(jù)量394
8.2 文件緩存394
8.2.1 文件緩存機(jī)制394
8.2.2 文件緩存開源產(chǎn)品Secache396
8.3 Opcode緩存398
8.4 客戶端緩存404
8.4.1 客戶端緩存規(guī)則405
8.4.2 HTTP協(xié)議中的緩存使用…405
8.4.3 HTTP緩存實(shí)例408
8.4.4 HTML 5中的Application Cache410
8.5 Web服務(wù)器緩存411
8.5.1 Apache緩存412
8.5.2 Nginx緩存412
8.6 本章小結(jié)414
第9章 Memcached使用與實(shí)踐415
9.1 為什么要用Memcached415
9.2 Memcached的安裝及使用415
9.2.1 安裝Memcached服務(wù)器416
9.2.2 安裝Memcached客戶端417
9.2.3 使用memcache擴(kuò)展訪問Memcached服務(wù)器418
9.2.4 使用Memcached加速Web應(yīng)用421
9.3 深入了解Memcached422
9.3.1 Memcached如何支持高并發(fā)422
9.3.2 使用Slab分配算法保存數(shù)據(jù)422
9.3.3 刪除過期item426
9.3.4 使用LRU算法淘汰數(shù)據(jù)427
9.3.5 Memcached多線程模型428
9.4 Memcached分布式布置方案431
9.4.1 普通Hash分布431
9.4.2 一致性Hash分布432
9.4.3 一致性Hash分布算法實(shí)例434
9.5 本章小結(jié)436
第10章 Redis使用與實(shí)踐437
10.1 Redis的安裝及使用437
10.1.1 Redis安裝步驟437
10.1.2 修改Redis配置文件438
10.1.3 運(yùn)行Redis服務(wù)器439
10.1.4 key相關(guān)命令439
10.1.5 Redis支持的數(shù)據(jù)類型…441
10.1.6 Redis排序命令詳解447
10.2 事務(wù)處理449
10.2.1 事務(wù)處理原理449
10.2.2 事務(wù)處理實(shí)現(xiàn)450
10.3 持久化452
10.3.1 內(nèi)存快照452
10.3.2 日志追加452
10.4 主從同步453
10.4.1 Redis主從同步原理453
10.4.2 Slave端的工作流程454
10.4.3 Master端的工作流程457
10.5 Redis集群實(shí)戰(zhàn)462
10.5.1 Redis集群搭建462
10.5.2 Redis集群原理467
10.6 擴(kuò)展庫phpredis安裝及使用470
10.7 Redis應(yīng)用實(shí)踐470
10.7.1 使用消息隊(duì)列發(fā)布微博…471
10.7.2 Redis替代文件存儲(chǔ)Session472
10.8 深入了解Redis內(nèi)核475
10.8.1 內(nèi)存淘汰475
10.8.2 對象引用計(jì)數(shù)器477
10.8.3 自動(dòng)關(guān)閉超時(shí)連接479
10.8.4 清除過期數(shù)據(jù)481
10.9 本章小結(jié)482
第11章 高性能網(wǎng)站架構(gòu)方案483
11.1 如何優(yōu)化網(wǎng)站響應(yīng)時(shí)間483
11.1.1 吞吐率484
11.1.2 壓力測試485
11.1.3 持久連接487
11.2 MySQL響應(yīng)速度提高方案:HandlerSocket491
11.2.1 HandlerSocket工作原理491
11.2.2 HandlerSocket安裝和配置491
11.2.3 PHP-HandlerSocket性能測試493
11.3 MySQL穩(wěn)定性提高方案:主從復(fù)制494
11.3.1 主從復(fù)制工作原理494
11.3.2 主從復(fù)制配置495
11.3.3 連接主從服務(wù)器497
11.4 Web應(yīng)用加速方案:Varnish…499
11.4.1 傳統(tǒng)代理與反向代理499
11.4.2 Varnish安裝和配置500
11.4.3 Varnish性能測試501
11.4.4 修改緩存規(guī)則503
11.4.5 監(jiān)控Varnish運(yùn)行狀態(tài)…505
11.5 異步計(jì)算方案:Gearman506
11.5.1 Gearman工作原理506
11.5.2 安裝Gearman和PHP擴(kuò)展508
11.5.3 使用Gearman異步發(fā)送郵件508
11.6 本章小結(jié)510
第12章 代碼調(diào)試和測試511
12.1 調(diào)試PHP代碼511
12.1.1 PHP調(diào)試函數(shù)511
12.1.2 斷點(diǎn)調(diào)試與變量跟蹤工具Xdebug515
12.1.3 phpdbg的使用介紹518
12.1.4 使用strace來跟蹤定位PHP程序520
12.2 前端調(diào)試525
12.2.1 Firebug調(diào)試API525
12.2.2 使用Firebug調(diào)試DOM結(jié)構(gòu)527
12.2.3 使用Firebug進(jìn)行遠(yuǎn)程調(diào)試528
12.3 日志管理530
12.3.1 PHP日志531
12.3.2 Apache/Nginx服務(wù)器日志531
12.3.3 MySQL日志534
12.4 代碼性能測試技術(shù)537
12.4.1 時(shí)間點(diǎn)測試537
12.4.2 文件查看工具WinCache-Grind538
12.4.3 性能測試注意事項(xiàng)540
12.5 單元測試541
12.5.1 單元測試框架PHPUnit的安裝541
12.5.2

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號