LAMP(Linux、Apache、MySQL、Perl/PHP/Python)有如軟體業界的一盞明燈,已儼然成為Java與.NET之外的第三新勢力,雖然它們的源起並非在同一個時間點。這樣組合的先天優勢在於取得成本低廉,以及彼此之間的技術整合發展成熟。相關的技術資源亦十分豐富,IBM與 Oracle等軟體大廠將PHP技術納入產品中,而跟隨AMP技術社群的好手們滿坑滿谷,加上參與開發及討論的熱血青年們不斷投入這個園地,所以在技術資源及經驗分享上,你不必憂慮成為技術孤兒。
免費品質不輸付費
首次接觸PHP,筆者就被有點像C又有一點Perl的精簡語法所吸引,一來是PHP提供的函式庫夠多也夠完整;在執行效能及穩定度上,與其他網頁程式語言(ASP/JSP)相比,表現不錯,所以一直以來PHP在開放源碼社群界中就是一個十分被重視的程式語言。許多流行的網頁應用系統,例如部落格 WordPress、資料庫管理介面phpMyAdmin、內容管理系統XOOPS、電子布告欄phpBB2等,幾乎都以PHP為主要的開發語言。
另外,輕薄短小的MySQL同屬開發人員首選的資料庫系統。隨著版本的更新,MySQL的功能漸漸能與其他知名資料庫產品相互抗衡。在新一代的版本中可以找尋到像是資料庫叢集(Cluster),資料覆寫(Replication),複雜交易及安全機制等資料庫進階功能的蹤影。
正因為這樣的組合方案愈來愈多人採用,不少網路社群將AMP組合成一個軟體安裝套件(像是國內接受度極高的AppServ,其他還有FoxServ、XAMPP等),安裝使用一氣呵成,讓入門者更能輕鬆上路,不需為多套軟體的整合設定搞得一頭霧水。
直譯式語言也可以寫得很OO
撰寫動態網頁程式時,常為人詬病的即是處理邏輯與呈現畫面混淆在一起、雜亂無章,日後維護不易,且功能擴充十分費力。雖然PHP屬於直譯式語言(Scripting Language),但它同樣可以實現物件導向設計的想法。PHP5中提出了新一代的物件模型(Object Model),除了可以用它來撰寫物件,更強化了執行效能及物件特性。如此彈性的設計方式,讓程式設計師與網頁設計師能彼此互不干擾,分工合作並提高生產力。
本書以入門者的角度撰寫,從軟體的安裝到程式語言的介紹都有詳盡的說明,就算你沒有任何經驗,也可以按部就班學習。利用兩個實作案例-電影評論網(Movie Review Website)及漫畫書迷社群網(Comic Book Fans)做為研究的方向,從網站功能說明利用PHP & MySQL實現的過程,其中包括一些在專案中常見的功能,例如對頁面輸入資料的處理、XML的操作、電子郵件收發、電子商務機制、布告欄及內容管理功能等,均頗具參考價值。
延伸閱讀,功力加倍
當然,在閱讀完本書後,等於你已打好AMP的基本功,然而對於與PHP開發時所需的相關議題,則可以透過其他書籍提供更完整的資訊。像是在系統設計階段,在Java界被炒得火熱的設計模式(Design Patterns)的應用,在PHP界也能應用相同的考量,像是《PHP 5 Objects, Patterns, and Practice》、《PHP|Architect's Guide to PHP Design Patterns》等,都是不錯的參考書籍。
另外像是在網頁設計時常遇到動態效果(CSS)的呈現,Smarty網頁樣版的導入設計,PHP本身核心之外的PEAR延伸程式庫(PHP Extension and Application Repository)的使用,以及提供資料庫系統一致性連結界面ADODB,以及可提供編譯及有效提升PHP執行效能的Zend系列工具等,這些都是在撰寫PHP時常會被選擇搭配的熱門技術,可以參考像是《PHP5 Power Programming》、《The PHP Anthology, Volume I & II》等書籍,尋求進一步的資源。