首頁  >  文章  >  後端開發  >  ThinkPHP是軟體框架嗎

ThinkPHP是軟體框架嗎

(*-*)浩
(*-*)浩原創
2019-05-11 13:05:462950瀏覽

ThinkPHP是為了簡化企業級應用開發和敏捷WEB應用開發而誕生的。最早誕生於2006年初,2007年元旦正式更名為ThinkPHP,並遵循Apache2開源協定發布。 ThinkPHP從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡的程式碼的同時,也注重易用性。並且擁有眾多原創功能和特性,在社區團隊的積極參與下,在易用性、擴展性和性能方面不斷優化和改進。

推薦課程:PHP教學

ThinkPHP是軟體框架嗎

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是軟體框架嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn