概觀

Lazybones是一個著重於核心的PHP開發框架,其主要目的在於減少小型架構網站所需撰寫的程式碼,加快開發的速度、增加可維護性,同時能兼具一定的執行的效能及開發彈性,努力在效能與核心功能間取得平衡點。

雖然不該完全由效能的表現來評論一個框架,但由於它的核心在設計時盡可能遵守PHP效能優化原則,反覆嘗試各種可能的作法試圖在易用性、效能性與開發彈性間取得平衡,因此在執行效能上比起許多核心功能相仿的PHP框架中有著優異的表現,在開發上也保有語法的親和度。

Lazbyones 不限制開發者的使用習慣,例如:包裝第三方AJAX library、Template engine、Javascript Library,讓每個開發者可依據自己的使用習慣進行擴充。

相信世界上沒有最完美的開發框架,每種框架都一定有其缺失,當然Lazybones也不可能是完美的,但不論您是否曾經使用過開發框架進行Web應用程式的開發,了解一下Lazybones,或許它會是您所需要的。

  • 擁有大量子系統彼此橫向縱向層層交疊、互相關聯對應的網站應定義為大型架構。
  • 擁有許多子系統彼此互相關聯對應的網站應定義為中型架構。
  • 擁有少量子系統彼互相關聯對應的網站定應義為小型架構。

現存的網站中應該至少有80%屬於小型架構,許多知名的Web2.0服務也理應被歸類於小型架構,當然這種定義是非常主觀的看法。

什麼人適合使用Lazybones?

  • 具備一定程度的PHP開發者。
    這是最基本的條件,請相信我,若對PHP本身並不太了解,不管用使用哪一套PHP框架都會讓您吃盡苦頭。
  • 想增加開發效率又不想過度耗費效能。
    這是Lazybones努力實現的目標。
  • 想少寫一些程式碼。
    Lazybones顧名思義,即懶人、懶骨頭,因此在框架語法上盡可能保持簡單好寫。
  • 覺得殺雞焉用牛刀。
    如果標的專案在結構上並不是非常複雜,何須使用肥大的大型的開發框架呢?
  • 想學習PHP開發框架。
    比起大型MVC開發框架而言,Lazybones的結構顯得非常簡單扼要,可做為學習PHP開發框架的跳板。

框架運作概念

由於物件導向被發明的用意是將複雜的系統邏輯模擬成真實世界中概念,透過以下的虛擬情境,將可幫助進一步釐清Lazybones運作流程。

情境:初級VIP會員到公司辦理升級成白金VIP會員的業務。

當客戶進來公司,公司開始運作,首先由單一窗口負責人員從客戶那得知他今天要來辦理什麼樣的業務,於是他轉而將資料交給負責處理該業務的部門,但由於公司規定不隨便開放給任何客戶辦理業務,因此客戶身分處理人員從中攔截資料,並請客戶身分驗證人員查出客戶的身分,最後客戶身分處理人員確認這個客戶是可以辦理此業務的初級VIP會員,才將此業務往下轉交該部門,該部門接受到這項業務後,部門主管認為這次客戶只是要從初級VIP會員升級為白金VIP會員,所他什麼都不處理就將資料一股腦兒的丟給客戶資料處理人員,讓他去做客戶升等的動作,而客戶資料處理人員收到資料後原本要進行客戶等級的升級,但在此之前公司規定要先檢核資料,所以他將資料交給資料驗證人員去處理,最後資料驗證人員回報客戶交予資料中,忘了填寫姓名,資料處理人員這時才又往後回報給該部門,由於資料錯誤不能進行升級,所以該部門將這些資訊彙整之後交給對外公關人員,此時由於公司注重對外形象,於是面貌姣好對外公關小姐,用很溫柔婉約的語氣對客戶說明:「很抱歉,您給予的資料錯誤,請填寫正確的姓名」。

由上述的情境對應到框架的中的主要物件,成為如下:

Application 公司

Router 單一窗口負責人員
負責判斷客戶要辦理的業務,該交由哪個部門執行。

ACL 客戶身分身分處理人員
負責判斷客戶所具備的身分,是否具備辦理業務的權限。

authHandler 客戶身分驗證人員
負責驗證客戶的身分。

Controller 部門
負責辦理業務
Controller.Action 部門所屬業務

View 美麗的對外公關
負責呈現結果給客戶

Model 資料處理人員
負責資料的處理

Validator 資料驗證人員
負責資料的稽核

框架運作流程圖

其流程概念如下圖所示:

現在請閱讀 快速開始 了解如何使用Lazybones PHP框架設計Web應用程式。