發表於2024-12-02
PHP 7挾大量的、強大的新功能和工具迅猛而來,使用這些功能和工具可以優化代碼,編寫齣比舊PHP版本程序速度更快的程序。本書著重介紹瞭PHP 7相關的中高級PHP編程技術。書中的所有範例程序都源於現實情況,旨在幫助PHP開發者解決經常遇到的現實問題。此外,本書還介紹瞭嚮下兼容性故障,並在需要修改PHP 5代碼的情況中提供瞭大量的指導意見,也介紹瞭*新的PHP 7.X功能。學過本書介紹的知識後,你將擁有必備的工具和技術,從而能夠為網站開發齣高效的應用程序。
書中的內容
◎簡明的、易於理解的介紹方式
◎精心挑選齣來的*重要的任務和問題
◎細心編排的幫助高效解決問題的處理步驟
◎對問題處理思路的清晰說明
◎可用於解決實際問題的方案
Web網站的專門化和多元化發展趨勢,要求網頁編程語言必須滿足編寫齣運行速度快、節省資源且具有較高安全性動態網頁的需求。本書介紹的PHP 7網頁編程語言就是其中的佼佼者。本書由13章構成,詳細介紹瞭PHP 7的新增功能和中高級PHP技術,包括安裝和配置PHP 7開發環境的入門知識、PHP 7的新增功能、PHP中的函數式編程功能、PHP麵嚮對象編程功能的基礎知識、使用命名空間和特性(trait)的方式、從數據庫讀取數據和嚮數據庫中寫入數據的方式、創建HTML錶單元素的類的方式、過濾與驗證數據的方式、實現SOAP和REST客戶端與服務器的手段、PHP*新的國際化網頁功能、遵循PSR-7編程規範編寫中間件的方式、使用PHP實現高級算法(如鏈錶、冒泡排序程序、堆棧和二分查找程序)的方式、軟件設計模式、當前互聯網中常見的攻擊手段和相應的防護手段、加密/解密技術,以及可幫助你編寫齣優質代碼的*佳編程習慣和調試技巧。此外,附錄還介紹瞭PSR-7編程規範。
Doug Bierer擁有自己的公司(unlikelysource.com),該公司的主營業務包括谘詢、PHP程序開發、網站架設和培訓(主要麵嚮Zend Technologies和Rogue Wave Software公司的員工)。他在O'Reilly Media齣版社齣版的計算機科學著作包括Learning PHP and MySQL、Learning PHP Security、Learning MongoDB和Learning Doctrine。
蘇寶龍,1999年畢業於遼寜石化大學計算機係,從事過計算機硬件維修、網絡和網站架設等計算機專業實踐工作。投身計算機圖書翻譯行業已有十餘年,譯著超過三十餘部,是一位優秀的、負責任的譯者。
PHP 7為我們帶來瞭大量的新功能和改進,如抽象語法樹(Abstract Syntax Tree,AST)、可被捕捉的錯誤、標量類型提示功能、返迴值數據類型聲明以及大幅度的性能提升等。
PHP開發者當前麵臨的問題不是“我應該使用這些新功能嗎”,而是“我怎樣纔能使用這些新功能開發齣品質更好、速度更快的應用程序呢”。
對於使用PHP 4開發應用程序的情景,我記憶猶新。對於PHP開發者來說,那是一段更為純真的時光,因為可以將PHP代碼和HTML代碼混閤在一起,而且能夠將這些代碼都放在一個文件中。那時候我們使用導入的函數庫,而不使用框架。PHP應用程序基本上隻是具有簡單基本功能的桌麵應用程序,而我們則想方設法把它塞到網頁中。
從那以後,PHP應用程序開發經曆瞭多次變革。AJAX、PHPUnit、composer和API-First等新興框架相繼湧現齣來。
所有框架(包括上麵提到的和其他許多框架)都對PHP開發者們開發應用程序的方式産生瞭影響。現在,如果你使用將PHP和HTML代碼混閤到一起的方式來編寫以分頁式設計模式為基礎的應用程序,就會受到嘲笑。那麼應該怎樣開發程序呢?怎樣開發新式PHP應用程序和API呢?怎樣利用PHP新增的工具開發齣速度更快、品質更優、健壯性更高的應用程序呢?我非常贊賞你能夠想到並提齣這些問題。
我的好朋友Doug Bierer對這些問題做齣瞭迴答。他撰寫的這本書不是華而不實的大部頭著作,不是你買來放在書架上就不會再碰一下的書。你捧在手中的這本書注定會成為你的參考資料庫的一部分。
本書不僅像其他編程書籍一樣介紹新增功能的理論知識,而且還會介紹使用這些新增功能解決真實問題的實踐方法。你不僅可以從本書汲取知識,而且還能夠立刻使用學到的知識解決問題。
如果隻是簡單使用一下PHP中的高級概念,你無須成為PHP專傢。然而,如果你想要成長為一名專業的PHP開發者,就必須學習、理解和掌握這些高級概念。本書會幫助你在自己的專業道路上不斷前進。
Cal Evans
Nomad PHP開發者群World Wide Herd研究組首席指導
第1章 基礎知識 1
本章主要內容簡介 1
安裝PHP 7的注意事項 1
內置PHP Web服務器的使用方法 6
定義用於測試的MySQL數據庫 7
安裝PHPUnit 8
實現類自動加載 9
掃描網站 12
創建深層次的網頁掃描器 16
創建將PHP 5代碼轉換為PHP 7代碼的代碼轉換器 18
第2章 PHP 7中的高效功能 25
本章主要內容簡介 25
瞭解抽象語法樹 26
瞭解語法分析中的差異 30
瞭解foreach()處理過程中的差異 32
使用PHP 7中的增強功能提高性能 36
遍曆含有大量數據的文件 40
將電子錶格上傳到數據庫中 43
遞歸式目錄迭代器 46
第3章 PHP中的函數式編程功能 51
本章主要內容簡介 51
開發函數 51
提示數據類型 55
設置函數返迴值的數據類型 60
使用迭代器 64
使用生成器編寫自己的迭代器 73
第4章 PHP中的麵嚮對象編程功能 77
本章主要內容簡介 77
開發類 77
擴展類 85
使用靜態屬性和方法 93
使用命名空間 97
定義可見性 102
使用接口 106
使用特性 112
實現匿名類 119
第5章 與數據庫進行交互 125
本章主要內容簡介 125
使用PDO連接數據庫 125
創建OOP式的SQL語句生成器 139
處理分頁 142
定義與數據庫錶匹配的實體 147
將實體類的數據類型設置為與RDBMS查詢操作匹配的數據類型 152
在查詢結果中嵌入二次查詢操作 160
實現jQuery DataTables插件的PHP查詢 164
第6章 創建可伸縮的網站 169
本章主要內容簡介 169
創建通用錶單元素生成器 169
創建HTML radio元素生成器 177
創建HTML select元素生成器 181
實現錶單工廠 186
關聯$_POST過濾器 192
關聯$_POST驗證器 206
將驗證操作與錶單關聯起來 212
第7章 訪問Web服務 219
本章主要內容簡介 219
在PHP和XML之間轉換 219
創建簡單的REST客戶端 223
創建簡單的REST服務器 234
創建簡單的SOAP客戶端 243
創建簡單的SOAP服務器 247
第8章 使用date/time數據類型和國際化功能 253
本章主要內容簡介 253
在查看腳本中使用錶情圖示或錶情符號 253
轉換復雜的字符 256
通過瀏覽器數據獲取用戶所在地信息 258
根據用戶所在地使用適當的格式顯示數字 262
根據用戶所在地處理貨幣數據 266
根據用戶所在地對日期/時間(date/time)數據類型進行格式化處理 272
創建HTML式的國際化日曆生成器 277
創建循環事件生成器 286
在不使用gettext工具集的情況下處理翻譯工作 294
第9章 開發中間件 304
本章主要內容簡介 304
通過中間件執行驗證操作 304
使用中間件實現訪問控製 311
使用緩存提高性能 319
實現路由功能 332
實現框架係統間的相互調用 338
使用中間件實現跨編程語言功能 347
第10章 高級算法 351
本章主要內容簡介 351
使用讀取器和設置器 351
實現鏈錶 358
編寫冒泡排序程序 363
實現堆棧 366
創建實現二分查找操作的類 369
實現搜索引擎 373
顯示多維數組和纍加閤計 380
第11章 實現多種軟件設計模式 388
本章主要內容簡介 388
創建數組至對象水閤器(array to object hydrator) 389
創建對象至數組水閤器(object to array hydrator) 391
實現策略模式 393
定義映射器 404
實現對象關聯映射功能 414
實現發布/訂閱設計模式 426
第12章 提高網頁的安全性 433
本章主要內容簡介 433
過濾通過$_POST變量獲得的數據 433
驗證通過$_POST變量獲得的數據 438
為PHP會話提供安全防護 441
通過令牌提高錶單的安全性 448
創建具有較高安全性的密碼生成器 454
通過驗證碼為錶單提供安全防護 459
在不使用mcrypt加密擴展庫的情況下實現加密/解密功能 474
第13章 最佳編程習慣、測試和調試 480
本章主要內容簡介 480
使用特性和接口 480
通用異常處理程序 486
通用錯誤處理程序 490
編寫簡單測試 494
編寫測試套件 514
生成模擬測試數據 517
使用session_start參數自定義會話 530
附錄 定義PSR-7類 535
本附錄主要內容簡介 535
實現PSR-7值對象類 535
開發PSR-7請求類 556
定義PSR-7迴應類 571
譯者序
互聯網(internet,又稱為因特網)始於20世紀60年代末的美國,最初僅用於軍事和科研。1989年3月12日萬維網(World Wide Web,無數個Web服務器和客戶端的集閤)在internet中誕生。大批富豪風起雲湧般隨之崛起,如Amazon的創始人傑夫·貝佐斯、Yahoo的創始人楊緻遠、百度的創始人李彥宏以及阿裏巴巴的創始人馬雲等。人們對計算機網絡的運用有瞭翻天覆地的變化。瞭解新聞不再需要買報紙、看電視,上網(即瀏覽網站,也就是訪問Web服務器)就可以;瞭解百科知識(如查字典上的解釋、醫藥信息、電子信息、機械知識甚至齣行路綫),上網就可以;買東西,上網就可以。上網還可以娛樂,如看電視劇、看電影、玩電子遊戲。簡言之,萬維網已經成為人類生活必不可少的組成部分。
萬維網誕生之初,Web網站的內容非常簡單:文字和圖片。因此對網頁編程語言的要求也非常簡單——能夠美觀地為瀏覽網站的用戶顯示齣文字和圖片即可。簡單的HTML語言足以勝任這項工作。但隨著萬維網的不斷發展,網站的功能也變得越來越專門化(例如專門提供娛樂的視頻、遊戲網站,以及專門提供網頁搜索服務的網站)和多元化(例如購物網站、聚集各種愛好者的網站),各種網站的內容和功能也不斷豐富。因而對網頁編程語言的要求也越來越高。
當前的Web網站要求網頁編程語言必須能夠編寫齣運行速度快、節省資源且具有較高安全性的動態網頁。PHP符閤所有這些要求,下麵是它的優點:
? PHP屬於開源軟件,源代碼完全公開。
? 開源軟件是免費的,非常省錢。
? 任何程序員都能非常容易地為PHP擴展附加功能。
? 可跨平颱,能夠和很多免費的平颱結閤。
? PHP語法簡單,非常容易上手,可快速實現從設計一個網頁到編寫一個Web應用程序的飛越。使用PHP,剛剛成為軟件工程師甚至還不是軟件工程師的人都能夠提交新功能。PHP是為瞭快速製造新東西而生的(這是維基百科和Facebook選擇PHP的原因)。
? PHP將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI程序高很多。PHP可以執行編譯後代碼,編譯可以達到加密和優化代碼的目的,使代碼運行得更快。
? PHP支持十多種主流與非主流數據庫,如:dBase、Informix、mSQL、MySQL、Microsoft SQL Server、Sybase、ODBC、PostgreSQL、Oracle等。其中,PHP與MySQL是絕佳的組閤,可以跨平颱運行。
? 目前主流技術(如WebService、AJAX、XML等)都支持PHP,因此能夠滿足應用需求。
? 很多大型門戶網站都使用PHP,如淘寶網、網易、新浪等。
? PHP提供瞭類和對象,實現瞭麵嚮對象編程功能。
? 有成熟的開發者社區支持PHP的研究和發展。
本書的作者Doug Bierer先生是一位擁有三十多年經驗的資深軟件開發者,他在本書中使用瞭大量的實踐案例。這些範例程序既有實用性也有啓迪性,深入淺齣地講解瞭PHP 7的新增功能和中高級PHP技術。
翻譯前沿計算機科學書籍的工作並不輕鬆,也不是單獨一個人能夠完成的。在此我要感謝電子工業齣版社張春雨等編輯對本書提供的幫助。此外,蘇連印、劉桂英、艾玉林、孫召景、張紀悅、張紀華、孫德林、馬佳妮、尹曉婷、徐雯、郭昕、陸迎明和孫召恒等也參與瞭本書的翻譯工作,在此對他們錶示感謝。
因時間倉促,譯者水平有限,本書難免有錯漏之處,歡迎廣大讀者朋友們批評指正。
蘇寶龍
推薦序
PHP 7為我們帶來瞭大量的新功能和改進,如抽象語法樹(Abstract Syntax Tree,AST)、可被捕捉的錯誤、標量類型提示功能、返迴值數據類型聲明以及大幅度的性能提升等。
PHP開發者當前麵臨的問題不是“我應該使用這些新功能嗎”,而是“我怎樣纔能使用這些新功能開發齣品質更好、速度更快的應用程序呢”。
對於使用PHP 4開發應用程序的情景,我記憶猶新。對於PHP開發者來說,那是一段更為純真的時光,因為可以將PHP代碼和HTML代碼混閤在一起,而且能夠將這些代碼都放在一個文件中。那時候我們使用導入的函數庫,而不使用框架。PHP應用程序基本上隻是具有簡單基本功能的桌麵應用程序,而我們則想方設法把它塞到網頁中。
從那以後,PHP應用程序開發經曆瞭多次變革。AJAX、PHPUnit、composer和API-First等新興框架相繼湧現齣來。
所有框架(包括上麵提到的和其他許多框架)都對PHP開發者們開發應用程序的方式産生瞭影響。現在,如果你使用將PHP和HTML代碼混閤到一起的方式來編寫以分頁式設計模式為基礎的應用程序,就會受到嘲笑。那麼應該怎樣開發程序呢?怎樣開發新式PHP應用程序和API呢?怎樣利用PHP新增的工具開發齣速度更快、品質更優、健壯性更高的應用程序呢?我非常贊賞你能夠想到並提齣這些問題。
我的好朋友Doug Bierer對這些問題做齣瞭迴答。他撰寫的這本書不是華而不實的大部頭著作,不是你買來放在書架上就不會再碰一下的書。你捧在手中的這本書注定會成為你的參考資料庫的一部分。
本書不僅像其他編程書籍一樣介紹新增功能的理論知識,而且還會介紹使用這些新增功能解決真實問題的實踐方法。你不僅可以從本書汲取知識,而且還能夠立刻使用學到的知識解決問題。
如果隻是簡單使用一下PHP中的高級概念,你無須成為PHP專傢。然而,如果你想要成長為一名專業的PHP開發者,就必須學習、理解和掌握這些高級概念。本書會幫助你在自己的專業道路上不斷前進。
Cal Evans
Nomad PHP開發者群World Wide Herd研究組首席指導
關於作者
在1971年,Doug Bierer使用Dartmouth BASIC(BASIC語言的原始版本)在一颱DEC PDP-8型計算機上編寫齣瞭自己的第一個程序,從那以後,他就再也無法與計算機分離瞭。經過一段體驗非常豐富的職業生涯曆練後,他在1978年成為瞭專業的閤約程序員,此後他一直在使用BASIC、PL/I、匯編、FORTH、C、C++、dBase/FoxBase/Clipper、Pascal、Perl、Java和PHP語言編寫應用程序。Doug Bierer會說四種語言,喜歡在世界各地旅遊,在法國、荷蘭、英格蘭、瑞典、蘇格蘭和泰國都居住過一段時間。他曾經花數年時間從事Linux係統管理和TCP/IP網絡工作。他多纔多藝,喜歡音樂和小說,寫過60多首歌。他有一個筆名叫作Douglas Alan。
Doug Bierer擁有自己的公司(unlikelysource.com),該公司的主營業務包括谘詢、PHP程序開發、網站架設和培訓(主要麵嚮Zend Technologies和Rogue Wave Software公司的員工)。
Doug Bierer在https://www.lulu.com/上發錶過小說The End, And Then? and Further Indications。他在O'Reilly Media齣版社齣版的計算機科學著作包括Learning PHP and MySQL、Learning PHP Security、Learning MongoDB和Learning Doctrine。
首要的是,我要將這本書獻給我的母親Betty Bierer,她在2016年5月永遠離開瞭我們。她在我的整個生命曆程中不斷鼓勵我,為我的每次進步歡呼鼓掌(不論這些進步多麼微小)。她參加瞭我舉辦的所有音樂會、購買瞭我錄製的所有CD,而且即便她對計算機科學毫無興趣,也仍舊閱讀瞭我撰寫的所有書。我還要感謝能夠與我同甘共苦的妻子Siri,當我因撰寫本書而沒有時間陪伴她時,她也無怨無悔(不過她也對我聲明下不為例)。最後,我要感謝許多PHP社區的活躍人士,他們幫助我迸發齣新式思路和靈感。這些人包括:Matthew Weir O'Phinney、Cal Evans、Daryl Wood、Susie Pollock、Salvatore Pappalardo、Slavey Karadzhov和Clark Everetts。
關於審校者
Salvatore Pappalardo是一位技術天纔,在2002年成為瞭一名軟件工程師。他喜歡“從零開始”的開發形式。他愛好廣泛,除瞭喜歡研究計算機技術,還喜歡閱讀科幻小說,觀賞電影和TED演講。
Vincenzo Provenza是一位網頁開發者,具有使用多種技術和編程語言(主要是PHP和JavaScript)的從業經驗。他喜歡旅遊和讀書。
前言
PHP 7以破紀錄的速度席捲瞭開源社區,吸引瞭許多人的注意力。核心開發團隊對這門編程語言做齣瞭很大的改進,但仍然為該語言保留瞭高度的嚮下兼容性。這些改進幾乎能夠為PHP程序提高200%的速度,並能夠大幅度地減少內存占用量。從開發的觀點看,對命令和統一變量語法(uniform variable syntax)解析方式的改進引入瞭多種編寫代碼的新方式,這些方式在以前的 PHP 版本中是無法使用的。同時,如果開發者不瞭解PHP 7解析命令的方式,就會掉到隱藏的陷阱中,導緻程序發生故障。因此,本書的使命是介紹這些新的令人激動的代碼編寫方式,以及這些新方式與以前的 PHP 版本不兼容的地方。需要著重指齣的一點是,本書既介紹P PHP 7 編程實戰 下載 mobi epub pdf txt 電子書 格式
PHP 7 編程實戰 下載 mobi pdf epub txt 電子書 格式 2024
PHP 7 編程實戰 下載 mobi epub pdf 電子書買來收藏
評分還可以,新書有味道
評分PHP7比較全麵實用的書,不錯
評分很好很棒
評分先看看
評分18915051818915051891505118915051891505191518915051891891505181891505189150511891505189150519151891505189150511891505189189150518189150518915051189150518915051915189150518915051189150518915051051189150518915051150510511891505189150511505115051051189150518915051
評分學習
評分還可以,新書有味道
評分不怎麼樣,不知道寫的是什麼
PHP 7 編程實戰 mobi epub pdf txt 電子書 格式下載 2024