推薦課程:PHP教學。
ThinkPHP是一個快速、相容而且簡單的輕量級國產PHP開發框架,誕生於2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協定發布,從Struts結構移植過來並做了改進和完善,同時也借鑑了國外很多優秀的框架和模式,使用物件導向的開發結構和MVC模式,融合了Struts的思想和TagLib(標籤庫)、RoR的ORM對映和ActiveRecord模式。
ThinkPHP可以支援windows/Unix/Linux等伺服器環境,正式版需要PHP5.0以上版本支援,支援MySql、PgSQL、Sqlite多種資料庫以及PDO擴充套件,ThinkPHP框架本身沒有什麼特別模組要求,具體的應用系統執行環境要求視開發所涉及的模組。
作為一個整體開發解決方案,ThinkPHP能夠解決應用開發中的大多數需要,因為其自身包含了底層架構、相容處理、基礎類別庫、資料庫存取層、模板引擎、快取機制、外掛機制、角色認證、表單處理等常用的元件,並且對於跨版本、跨平台和跨資料庫移植都比較方便。並且每個元件都是精心設計和完善的,應用開發過程僅僅需要關注您的業務邏輯。
重要的概念
要掌握ThinkPHP,首先要了解其中的幾個重要概念,對於熟悉Java開發的朋友,應該很容易理解下面的一些概念。
Action物件
和Struts框架的Action類似,Action物件主要提供應用邏輯的控制和處理,屬於ThinkPHP的控制層,由核心的App類完成模組和操作的解析後直接轉交給相應的Action物件處理。應用類中的所有Action物件都繼承系統的Action基礎類別。
Dao物件
是指DataAccessObject(資料存取物件),Dao設計模式把底層的資料存取邏輯和業務邏輯分開,夾在業務層與資料層中間,用於資料庫存取和操作。可以針對單表和多表操作。ThinkPHP中的Dao物件屬於建立在抽象資料庫存取層之上的事務性物件。
VO物件
是指ValueObject(資料物件),更加精確的說是業務物件,因為VO物件是存活在業務層的,供業務邏輯使用的。VO物件和資料表存在一種對映關係,VO物件的每個屬性對應資料表(或者檢視)的一個欄位,你完全可以新增其他非資料表欄位的VO物件屬性,以用於業務邏輯操作,例如關聯欄位。VO物件有個特殊的保留屬性_info,是一個陣列變數,用來儲存該VO物件的一些特殊資訊。和VO物件對應的概念還有PO(持久資料物件),VO和PO的概念都來自於O/RMapping(ObjectRelationalMapping,物件關係對映),PO只能用在資料層(也就是說PO物件的屬性必須和資料表一一對應),VO用在業務邏輯層和表示層(可以有自己的額外屬性)。各層操作屬於該層自己的資料物件,這樣就可以降低各層之間的耦合,便於以後系統的維護和擴充套件。如果將PO用在各個層中就相當於我們使用全域性變數,我們知道在OO設計非常不贊成使用全域性變數。
VoList物件
在ThinkPHP框架中,把查詢後的資料集(ResultSet)轉換成資料列表物件,也就是VOLIST物件,和ResultSet物件不同的是每個記錄就相當於一個VO物件。在VOLIST物件中可以方便地遍歷和操作VO物件。VO物件和VOLIST物件都屬於ThinkPHP框架中的實體物件,是資料操作的基本元素。如果你在開發過程中沒有使用Dao模式,而是通過資料庫驅動類直接運算元據庫,那麼返回的是ResultSet物件。ThinkPHP系統提供了從ResultSet物件轉換為VOLIST物件的方法。
元件和外掛支援
基於角色的許可權控制體系
企業級的應用是離不開安全保護的,ThinkPHP以基於Spring的Acegi安全系統作為參考原型,並做了簡化,以適合目前的ThinkPHP結構,提供了一個多層的、可客製化的安全體系來為應用開發提供安全控制。安全體系中主要有: 安全攔截器、認證管理器、決策存取管理器 、執行身份管理器。
以上就是ThinkPHP是軟體框架嗎的詳細內容,更多請關注TW511.COM其它相關文章!