1. 程式人生 > >讀書筆記《PHP高階程式設計、模式、框架與測試》

讀書筆記《PHP高階程式設計、模式、框架與測試》

序言

  閒來無事,下載了一些電子書,然後看書名不錯《PHP高階程式設計_模式、框架與測試》,翻了一下雖然書有點老了但是講的內容經常會碰到!給大家推薦一下,然後這裡放上我的讀書筆記,每日更新。

  

  【作  者】(加)Kevin McArthur [同作者作品] [作譯者介紹] 
  【譯  者】 汪泳[同譯者作品] 
  【叢 書 名】 圖靈程式設計叢書 
  【出 版 社】 人民郵電出版社     【書 號】 9787115193179 
  【上架時間】 2009-5-31 
  【出版日期】 2009 年7月 【開 本】 16開 【頁 碼】 1     【版 次】1-1 

  翻譯很到位,給翻譯官加雞腿!PHP進階篇。

  另外《PHP核心技術與最佳實踐》也可以去翻翻,哇學無止境啊!

章節

  •   第一章 抽象類、介面和契約式程式設計
  •   第二章 靜態變數、成員和方法
  •   第三章 單例模式和工程模式
  •   第四章 異常
  •   第五章 PHP 6中的新特性
  •   第六章 文件編寫和編碼規範
  •   第七章 反射API
  •   第八章 測試、部署和持續整合
  •   第九章 SPL簡介
  •   第十章 SPL迭代器
  •   第十一章 SPL檔案和目錄處理
  •   第十二章 SPL陣列過載
  •   第十三章 SPL異常
  •   第十四章 MVC架構
  •   第十五章 Zend框架簡介
  •   第十六章 Zend框架高階功能
  •   第十七章 應用Zend框架
  •   第十八章 Ajax和JSON
  •   第十九章 Web服務和SOAP協議介紹
  •   第二十章 高階Web服務
  •   第二十一章 證書驗證

讀書筆記

  第一章 抽象類、介面和契約式程式設計

抽象類 抽象類是使用abstract關鍵字宣告的類。通過將某個類標記成抽象類,我們可以推遲實現所宣告的方法。要將某個方法宣告成抽象方法,只需要省略掉包含所有大括號的方法實現體,將方法宣告的程式碼行用分號結束即可。 抽象類不能直接例項化,他們必須被繼承。如果某個類從抽象類繼承,當它沒有實現基類中所宣告的所有抽象方法時,它就必須也被宣告成抽象的。   介面 在介面中,我們也可以宣告沒有方法體的方法原型,這點與抽象類很類似。它們之間的區別在於,介面不能宣告任何具有方法體的方法;並且它們使用的語法也不一樣。為了將介面規則強制加到某個類上,我們必須使用implements關鍵字,而不是使用extends關鍵字。   instanceof 在某些情況下,我們希望確定某個類是否是特定的型別,或者是否實現了特定的介面。instanceof操作符非常適合這個任務。instanceof操作符檢查三件事情:例項是否是某個特定的型別,例項是否從某個特定的型別繼承,例項或者他的任何祖先類是否實現了特定的介面。 某些語言具有從多個基類繼承的功能,這成為多重繼承。PHP不支援多重繼承。相反,它提供了為一個類宣告多個介面的功能。 介面在生命類必須遵循的規則時非常有用。契約式程式設計技術使用這一功能來增強封裝性,優化工作流。  

  
第二章 靜態變數、成員和方法

靜態變數 靜態變數是經過修飾的函式變數,在某個函式執行完成之後,它的值r仍然不會丟失。使用static關鍵字可以建立靜態變數,同時還可以提供一個預設的初始值。不過,這個初始化值不能是一個表示式。當使用全域性變數來模擬靜態變數時,有可能發生變數名稱衝突的現象,靜態變數在消除這一衝突方面是非常有用的。   靜態成員和方法 static關鍵字還可以用在類中修飾屬性和方法。用在屬性上時,它使屬性不再為每個例項儲存一個值,,而是隻為整個類自身儲存一個值。這個值也可以被用做事類的所有例項之間共享的值。 要訪問靜態方法,可以使用雙冒號操作符(::),它也被稱為作用域限定操作符。這個操作符的左邊是一個類名稱或者某個預定義作用域,預定義作用域包括self、parent或者PHP6中的static。操作符的右邊是一個靜態方法、變數和常量。在類中使用self預定義作用域時,它代表的是類自身。而parent預定難以作用域代表的是父類,當我們需要訪問可能已經被重寫的基類中的方法時,parent作用域非常有用。 靜態類會對特定型別的測試產生影響。當在PHP中使用靜態類時,IoC(控制反轉)設計原型會受到限制。這是因為靜態特性的使用會導致類之間通過名稱繫結在一起,這使得單獨地測試某個元件變得更加困難。不過,大多數PHP應用程式最終都沒有采用IoC設計原型,並且靜態特性的使用通常會被優先考慮。

  第三章 單例模式和工程模式

單例模式為我們提供了定義系統職責中心點的功能。單例類在一個靜態變數中儲存了自身的一個例項,並且提供了一個getInstance()靜態方法對這個例項進行訪問。這個方法會返回對這個變數的引用,並且如果這個變數之前還沒有執行初始的例項化工作,這個方法便會執行。這種延時例項化的行被稱為 延時載入。單例類還應該將他的建構函式標記為private,從而防止其他類直接例項化這個類。為了清除其他可以建立這個單例項的副本的漏洞,還可以定義__clone()魔術方法,並且將它標記成private。(看到這是不是想起了TP框架) 工廠模式的作用在於,可以根據輸入引數或者應用程式配置的不同來建立一種專門用於例項化並返回其他類的例項的類。工程模式包含一個名為factory()的方法,這個方法必須返回一個物件.

  第四章 異常

     待續......