特點
基於組件的編程方式使代碼的重用極為方便。一些重複性的單調的工作比如表單輸入的驗證,頁面狀態的管理等都可以使用PRADO已經提供的組件來處理。開發者也可以通過繼承現有的組件或者組合現有的組件來開發新的組件滿足要求。另外一些新的組件即將發布。
總來的說,PRADO為PHP的編程人員提供了以下的有益之處:
可重用性-符合PRADO組件標準的代碼是高度可重用的。
易於使用-使用PRADO組件非常簡單,通常只需要配置它們的屬性,編寫相關的事件處理函式。
健壯性-PRADO讓開發者不再被那些令人厭煩的有很多錯誤的的代碼所困擾。它的代碼都是有對象,方法和屬性組成的;而不是Url地址和各種query參數。PHP5最新的Exception處理機制也被引入進來,讓開發人員能夠精確定位到錯誤代碼的所在行數。
高效-PRADO開發的Web套用運行很快。PRADO實現了一種快取機制,使用其開發的套用的運行效率能夠和那些通常使用的模版引擎開發的套用的運行效率相媲美。
團隊協作-PRADO允許內容和表現方式分離。組件,尤其是頁面,將內容(邏輯)和表現方式分別保存在不同的檔案中。
目前已經有很多PHP的框架,Mojavi,WACT,PHP.MVC,Phrame等等。它們主要是建立一套鬆散的PHP代碼組織方式(比如Model-view-controller)。其中一些更多的面向開發一個內容管理系統,並提供了諸如用戶管理模組等更多的功能。
和這些框架相比,PRADO更專注於建立一個代碼重用和事件驅動的編程標準。如果你曾經用Delphi或者VisualBasic等這些RAD開發工具來開發Windows程式的話,那么你會發現使用PRADO來開發WEB套用是非常類似的,你可以很快就掌握PRADO來進行WEB套用的開發。大多數情況下,你要做的僅僅是設定組件的屬性和回響組件的事件。更高層次的代碼重用,比如前面所說的用戶管理模組,可以基於PRADO組件來實現。
PRADO的設計思想起源於ApacheTapestry項目想到的。
原理
下面用一個簡單的例子來說明PRADO框架的工作原理。假定我們現在要使用PRADO來開發一個常見的登錄頁面。首先我們選擇PRADO中的2個TTextBox控制項和1個TButton控制項來分別對套用戶名輸入,密碼輸入和提交按鈕。然後把對應密碼輸入的TTextBox控制項的TextMode屬性設定為"Password",並為TButton控制項的OnClick事件指定一個處理函式login。最後把這些控制項放到頁面模板的合適的位置上,一個功能完善的登錄頁面就實現了。控制項會自己處理好如何顯示數據,如何得到用戶輸入的數據,如何回響用戶的操作等這些事情。例如,TTextBox控制項會顯示一個輸入框讓用戶輸入;用戶輸入的密碼會被顯示為*號,而開發者在代碼中可以通過讀取TTextBox控制項的Text屬性來獲取用戶實際輸入的密碼;當用戶點擊了提交按鈕的時候,login函式將會被自動調用。這和傳統的PHP編程處理方式很不一樣。使用傳統的PHP編程方式,開發人員需要使用HTML標籤來顯示用戶輸入框和按鈕,同時需要自己解析POST數據來獲得用戶的輸入以及判斷按鈕是否被點擊了等等這些事情。