1,胡說八道
php設計專門用於web開發的編程語言,易學易用獲得普遍應用的同時也飽受詬病,簡單易學使得初學者用最短的時間很容易實現本身的WEB站點,且開源項目豐富,是中小型公司熱衷的選擇。可是,隨着站點流量的增長、更多功能需求的增長、邏輯複雜度增長,php會讓你陷入麻煩之中,php開發人員須要對php語言作深刻的理解、對web站點的實踐作深刻的理解,對設計和技巧的應用才能解決麻煩。php語言很特殊,既有設計之初的面相過程寫法,也有php4以後引入類以後的面相對象的寫法,語法糖,弱語言類型等一切爲開發速度的提高服務。
2,獲取幫助渠道
手冊 、開源社區 、google
3,面向對象OOP
OOP是一種用於開發結構合理並可維護的編程方法,因爲php常常看到面向過程的寫法,不少phper把OOP看成神祕的藝術。OOP最重要的可能就是代碼重用,相同的問題能夠用同一段代碼解決。面向對象的代碼存儲庫也不斷的完善PEAR和PHP Classes,能夠節省重複造輪子的時間,把更多精力放在業務邏輯等其餘方面。php5對對象模型的完善和性能都獲得顯著提升。
類的概念:事物的通用抽象,定義對象的屬性方法。
封裝和可見性:封裝是OOP的基本概念,概念是 一個類應該具備一個公共接口(屬性方法)和一個私有實現(內部實現機制),經過公共API可以輸出結果,隱藏內部實現機制。經過類的屬性方法的可見性來實現公共接口和私有實現,public protected private,不少人喜歡把類都定義成public,避免考慮封裝帶來的問題。可是對於用戶必須瞭解如何使用這個類,用戶看了public的這些公共可見性的東西使用起來都是安全的,可能重寫這些公共的類,形成嚴重的問題!因此儘量把屬性和方法的可見性縮小到最小知足封裝的目標。
__construct 初始化對象的屬性, __destruct 消除對象的痕跡(關閉數據庫鏈接和文件句柄等),__ 包含的其餘魔法函數使用起來很方便
繼承:面向對象基本概念,php實現對象的單繼承,繼承父類的全部public protected屬性和方法,子類可以覆蓋繼承的屬性和方法,方法覆蓋時參數要一致(5.3 Strict Standards報錯,E_STRICT在php手冊定義爲 PHP建議...,爲了保證向前兼容性和操做性建議開啓),即便覆蓋了父類的方法任然能使用父類的方法(parent::, ::被稱做範圍解析雲算符),__constract要注意(子類覆蓋時候沒有java等其餘面嚮對象語言的級聯構造函數,要手動實現父類的構造)
對象的組合聚合:對象除了繼承以外的另外一種交互方式。
聚合能夠理解爲第二個對象經過方法的參數傳遞給第一個對象,這樣第一個對象就能夠調用第二個對象的方法了,優勢是 對象能夠被多個對象共享使用,對象改變狀態可能致使其餘對象沒法使用
組合能夠理解成第一個對象實例化第二個對象,徹底擁有第二個對象,對象不可以共享給其餘對象,可讀性高,封裝性更好,可是兩個對象的耦合性更高重用困難
多態 :多個對象共享同一個接口,能夠實現互換,即「一個對外接口,多個內部實現方法」,同一個操做做用於不一樣的類的實例,將產生不一樣的執行結果。也即不一樣類的對象收到相同的消息時,將獲得不一樣的結果。 php接口(提供方法名稱,不提供方法體)。實際的應用開發中,採用面向對象中的多態主要在於能夠將不一樣的子類對象都看成一個父類來處理,而且能夠屏蔽不一樣子類對象之間所存在的差別,寫出通用的代碼,作出通用的編程,以適應需求的不斷變化。由於PHP自己就是一種弱類型的語言,不存在父類對象轉化爲子類對象或者是子類對象轉化爲父類對象的問題,因此多態的應用並非那麼的明顯
4,如何編寫可移植性代碼
並不是全部php運行的環境都是同樣的。php版本 php.ini文件配置不一樣,腳本可能不能在另外一服務器運行,全部應當採用廣泛接受的最佳實踐配置,提升兼容性。
最佳實踐: 保持配置集中放置、編寫可重用行代碼、使用完整的php標記、使用全局超級變量
5,緩存
緩存是幾乎全部應用都在用的一種數據優化存儲方式,可是數據的實時性帶來的問題該怎麼解決不使用緩存?
瀏覽器緩存:html的meta標籤和http頭能夠阻止使用緩存
6,代碼管理 GIT
7,代碼部署 構建系統