日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

ThinkPHP的发展历程及特性

發(fā)布時(shí)間:2024/1/18 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ThinkPHP的发展历程及特性 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ThinkPHP,是為了簡(jiǎn)化企業(yè)級(jí)應(yīng)用開發(fā)和敏捷WEB應(yīng)用開發(fā)而誕生的開源輕量級(jí)PHP框架。

最早誕生于2006年初,2007年元旦正式更名為ThinkPHP,并且遵循Apache2開源協(xié)議發(fā)布。ThinkPHP從誕生以來(lái)一直秉承簡(jiǎn)潔實(shí)用的設(shè)計(jì)原則,在保持出色的性能和至簡(jiǎn)的代碼的同時(shí),也注重易用性。并且擁有眾多原創(chuàng)功能和特性,在社區(qū)團(tuán)隊(duì)的積極參與下,在易用性、擴(kuò)展性和性能方面不斷優(yōu)化和改進(jìn)。?[1]?

ThinkPHP是一個(gè)快速、兼容而且簡(jiǎn)單的輕量級(jí)國(guó)產(chǎn)PHP開發(fā)框架,誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協(xié)議發(fā)布,從Struts結(jié)構(gòu)移植過(guò)來(lái)并做了改進(jìn)和完善,同時(shí)也借鑒了國(guó)外很多優(yōu)秀的框架和模式,使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu)和MVC模式,融合了Struts的思想和TagLib(標(biāo)簽庫(kù))、RoR的ORM映射和ActiveRecord模式。

ThinkPHP可以支持windows/Unix/Linux等服務(wù)器環(huán)境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多種數(shù)據(jù)庫(kù)以及PDO擴(kuò)展,ThinkPHP框架本身沒有什么特別模塊要求,具體的應(yīng)用系統(tǒng)運(yùn)行環(huán)境要求視開發(fā)所涉及的模塊。

作為一個(gè)整體開發(fā)解決方案,ThinkPHP能夠解決應(yīng)用開發(fā)中的大多數(shù)需要,因?yàn)槠渥陨戆说讓蛹軜?gòu)、兼容處理、基類庫(kù)、數(shù)據(jù)庫(kù)訪問(wèn)層、模板引擎、緩存機(jī)制、插件機(jī)制、角色認(rèn)證、表單處理等常用的組件,并且對(duì)于跨版本、跨平臺(tái)和跨數(shù)據(jù)庫(kù)移植都比較方便。并且每個(gè)組件都是精心設(shè)計(jì)和完善的,應(yīng)用開發(fā)過(guò)程僅僅需要關(guān)注您的業(yè)務(wù)邏輯。

ThinkPHP發(fā)展歷程,無(wú)數(shù)TPer一起見證了ThinkPHP的成長(zhǎng):

2006年01月15日, ThinkPHP的雛形版本FCS0.6.0發(fā)布;

2006年02月12日,(元宵節(jié))發(fā)布FCS 0.6.1 版本,Google討論組成立;

2006年03月15日, FCS 0.7.0版本發(fā)布;

2006年05月07日, FCS 0.8版本發(fā)布;

2006年10月25日, FCS 0.9.0版本發(fā)布;

2006年12月25 日,SF項(xiàng)目和Google網(wǎng)站ThinkPHP項(xiàng)目申請(qǐng)完成;

2007年01月01日, FCS正式更名為ThinkPHP;

2007年01月08日, ThinkPHP 0.9.5版發(fā)布同期官方網(wǎng)站開通;

2007年02月21日, TOPThink社區(qū)暨新版ThinkPHP官方網(wǎng)站開通,并提供社區(qū)支持;

2007年02月25日, 發(fā)布ThinkPHP 0.9.6版本,完成FCS到ThinkPHP的正式遷移;

2007年04月29日, ThinkPHP發(fā)布0.9.7版本;

2007年07月01日, ThinkPHP發(fā)布0.9.8版本;

2007年10月15 日,ThinkPHP發(fā)布1.0.0RC1版本,完成PHP5的重構(gòu);

2007年12月15 日,ThinkPHP發(fā)布1.0.0正式版本標(biāo)志著ThinkPHP步入軌道;

2008年10月01日, ThinkPHP發(fā)布1.0.3正式版本;

2008年12月25 日,ThinkPHP發(fā)布1.5正式版本并啟動(dòng)商業(yè)化支持服務(wù),ThinkPHP進(jìn)入穩(wěn)定發(fā)展;

2009年05月01日, ThinkPHP 發(fā)布1.6.0RC1版本;

2009年10月01日, ThinkPHP發(fā)布2.0版本完成新的重構(gòu)和飛躍,這是一次劃時(shí)代的版本;

2012年04月05日, ThinkPHP發(fā)布3.0版本 慶祝ThinkPHP發(fā)布6周年;

2012年10月08日, ThinkPHP發(fā)布3.1版本;

2012年11月11日, ThinkPHP3.1.2擴(kuò)展包;

2013年05月09日,ThinkPHP發(fā)布3.1.3完整版;

2013年12月18日,ThinkPHP發(fā)布3.2正式版;

2014年10月31日,ThinkPHP發(fā)布3.2.2完整版?[2]??;

2015年12月11日,ThinkPHP 5.0 Beta 發(fā)布;

2017年02月27日,Thinkphp5.0.5完整版正式發(fā)布?[3]??;

2018年05月02日,Thinkphp5.1.0RC版本發(fā)布;?[4]?

2019年04月22日,Thinkphp6.0RC2版本發(fā)布?[5]??;

2019年08月16日,Thinkphp6.0RC4版本發(fā)布?[6]??;

2019年12月24日,Thinkphp6.0.1版本發(fā)布?[7]??;

簡(jiǎn)單易用

模型(M):模型的定義由Model類來(lái)完成。Model類位于項(xiàng)目目錄下面的LibModel目錄。

THINKPHP初始頁(yè)面

控制器(C):應(yīng)用控制器(核心控制器)和Action控制器都承擔(dān)了控制器的角色,區(qū)別在于Action控制器完成業(yè)務(wù)過(guò)程,而應(yīng)用控制器(App類)負(fù)責(zé)調(diào)度控制。Action控制器位于項(xiàng)目目錄下面的LibAction目錄。

視圖(V):模板的實(shí)現(xiàn)是和框架無(wú)關(guān)的,做到了100%分離,可以獨(dú)立預(yù)覽和制作。模板目錄位于項(xiàng)目目錄下面的Tpl目錄。

獨(dú)創(chuàng)機(jī)制

ThinkTemplate是一個(gè)使用了XML標(biāo)簽庫(kù)技術(shù)的編譯型模板引擎,支持兩種類型的模板標(biāo)簽,使用了動(dòng)態(tài)編譯和緩存技術(shù),而且支持自定義標(biāo)簽庫(kù)。其特點(diǎn)包括:

1)支持XML標(biāo)簽庫(kù)和普通標(biāo)簽的混合定義;

2)編譯一次,下次直接運(yùn)行而無(wú)需重新編譯;

3)模板文件更新后,自動(dòng)更新模板緩存;

4)自動(dòng)加載當(dāng)前操作的模板緩存文件,無(wú)需指定模板文件名稱;

5)支持編碼轉(zhuǎn)換和Content-Type更換;

THINKPHP目錄結(jié)構(gòu)

6)模板變量輸出前綴支持,避免變量名稱沖突;

7)模板常量替換,無(wú)需設(shè)置模板變量;

8)支持變量組合調(diào)節(jié)器和格式化功能;

9)支持替換其它模板引擎插件使用;

10)支持獲取模板頁(yè)面內(nèi)容。

內(nèi)置XML模板引擎,支持標(biāo)簽庫(kù)

富模型支持

1)聚合模型:

聚合模型是一種虛擬模型,用于把數(shù)據(jù)表的字段抽象化,更加容易理解和操作。

我們可以把數(shù)據(jù)表中的某些屬性進(jìn)行數(shù)據(jù)封裝,這樣就把枯燥的數(shù)據(jù)表字段賦予更好的可讀性。

2)靜態(tài)模型:

靜態(tài)模型可以讓模型的數(shù)據(jù)靜態(tài)化,而不需要頻繁和數(shù)據(jù)庫(kù)打交道,可以用于不經(jīng)常改變的數(shù)據(jù)表。而且ThinkPHP在ORM層上面模擬實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的視圖功能,這是ThinkPHP獨(dú)創(chuàng)的一項(xiàng)技術(shù),使得多表的關(guān)聯(lián)查詢具有更高的效率和可操作性,而無(wú)需定義復(fù)雜的關(guān)聯(lián)關(guān)系,讓關(guān)聯(lián)關(guān)系更加淺顯易懂。

有些時(shí)候,數(shù)據(jù)表的數(shù)據(jù)一旦添加后就不再容易變化,我們更希望把這樣的模型數(shù)據(jù)靜態(tài)化,而不需要再次訪問(wèn)數(shù)據(jù)庫(kù)。ThinkPHP支持靜態(tài)模型的概念,一旦把模型設(shè)置為靜態(tài),那么會(huì)在第一次初始化的時(shí)候獲取數(shù)據(jù)表的全部數(shù)據(jù),并生成緩存,以后不會(huì)再連接數(shù)據(jù)庫(kù)。而只需要直接訪問(wèn)模型的dataList數(shù)據(jù)即可。

3)視圖模型

ThinkPHP在ORM模型里面模擬實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的視圖模型,該功能可以用于多表查詢。

要定義視圖對(duì)象,需要設(shè)置viewModel為true,然后設(shè)置viewFields屬性即可。

CURD和操作高度自動(dòng)化支持

ThinkPHP提供了靈活和方便的數(shù)據(jù)操作方法,不僅實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)操作的四大基本操作(CURD):創(chuàng)建、讀取、更新和刪除的實(shí)現(xiàn),還內(nèi)置了很多實(shí)用的數(shù)據(jù)操作方法,提供了ActiveRecords模式的最佳體驗(yàn)。

豐富的查詢語(yǔ)言支持

ThinkPHP大多數(shù)情況使用的都是對(duì)象查詢,因?yàn)槌浞掷昧薕RM查詢語(yǔ)言,了解查詢條件的定義對(duì)使用對(duì)象查詢非常有幫助,對(duì)于復(fù)雜的查詢,或者從安全方面考慮,可以使用HashMap對(duì)象或者索引數(shù)組來(lái)傳遞查詢條件。

目錄結(jié)構(gòu)自動(dòng)創(chuàng)建THINKPHP目錄結(jié)構(gòu)

ThinkPHP具有項(xiàng)目目錄自動(dòng)創(chuàng)建功能,你只需要定義好項(xiàng)目的入口文件,第一次執(zhí)行入口文件的時(shí)候,系統(tǒng)會(huì)自動(dòng)創(chuàng)建項(xiàng)目的相關(guān)目錄結(jié)構(gòu),如果是linux環(huán)境下面需要給項(xiàng)目入口文件里面指定的路徑設(shè)置可寫權(quán)限。

分布式數(shù)據(jù)庫(kù)支持

ThinkPHP的模型支持主從式數(shù)據(jù)庫(kù)的連接,配置DB_DEPLOY_TYPE為1可以采用分布式數(shù)據(jù)庫(kù)支持。

?

多數(shù)據(jù)庫(kù)連接和切換支持

如果需要在特殊的時(shí)候連接多個(gè)數(shù)據(jù)庫(kù),那么可以嘗試使用ThinkPHP的多數(shù)據(jù)庫(kù)連接特性:包括相同類型的數(shù)據(jù)庫(kù)和不同類型的數(shù)據(jù)庫(kù)。(注意:所謂的相同類型數(shù)據(jù)庫(kù)的定義是指和項(xiàng)目配置文件或者模型的數(shù)據(jù)庫(kù)連接的數(shù)據(jù)庫(kù)類型相同。)

ActiveRecords模式和豐富的ROR特性

ThinkPHP實(shí)現(xiàn)了ActiveRecords模式的ORM模型,采用了非標(biāo)準(zhǔn)的ORM模型:表映射到類,記錄(集)映射到對(duì)象,字段屬性映射到對(duì)象的虛擬屬性。最大的特點(diǎn)就是使用方便,從而達(dá)到敏捷開發(fā)的目的。

靈活簡(jiǎn)單的項(xiàng)目配置

ThinkPHP提供了靈活的配置功能,采用最有效率的PHP返回?cái)?shù)組方式定義,支持慣例配置、項(xiàng)目配置、調(diào)試配置和模塊配置,并且會(huì)自動(dòng)生成配置緩存文件,無(wú)需重復(fù)解析的開銷。對(duì)于有些簡(jiǎn)單的應(yīng)用,你無(wú)需配置任何配置文件,而對(duì)于復(fù)雜的要求,你還可以增加模塊配置文件,另外ThinkPHP的動(dòng)態(tài)配置使得你在開發(fā)過(guò)程中可以靈活的調(diào)整配置參數(shù)。

ThinkPHP在項(xiàng)目配置上面創(chuàng)造了自己獨(dú)有的分層配置模式,其配置層次體現(xiàn)在:慣例配置-->項(xiàng)目配置-->模塊配置-->操作(動(dòng)態(tài))配置,優(yōu)先順序從右到左(在沒有生效的前提下)。

模型自動(dòng)驗(yàn)證和處理

系統(tǒng)內(nèi)置了數(shù)據(jù)對(duì)象的自動(dòng)驗(yàn)證功能,而大多數(shù)情況下面,數(shù)據(jù)對(duì)象是由表單提交的$_POST數(shù)據(jù)創(chuàng)建。需要使用系統(tǒng)的自動(dòng)驗(yàn)證功能,只需要在Model類里面定義$_validate屬性,是由多個(gè)驗(yàn)證因子組成的數(shù)組,支持的驗(yàn)證因子格式:驗(yàn)證字段,驗(yàn)證規(guī)則,錯(cuò)誤提示,驗(yàn)證條件,附加規(guī)則,驗(yàn)證時(shí)間。

靜態(tài)頁(yè)面生成和多元化緩存機(jī)制

ThinkPHP內(nèi)置了靜態(tài)緩存的功能,并且支持靜態(tài)緩存的規(guī)則定義。要使用靜態(tài)緩存功能,需要開啟HTML_CACHE_ON參數(shù),并且在項(xiàng)目配置目錄下面增加靜態(tài)緩存規(guī)則文件htmls.php。

豐富的數(shù)據(jù)庫(kù)及PDO支持

SEOURL路由支持

AJAX支持

易擴(kuò)展的系統(tǒng)基類庫(kù)

系統(tǒng)基類庫(kù)

ThinkPHP框架通過(guò)基類庫(kù)的概念把所有系統(tǒng)類庫(kù)都集成在一起,包括ThinkPHP的核心類庫(kù)。

基類庫(kù)分成Think核心類庫(kù)、ORG擴(kuò)展類庫(kù),在這主要介紹的是核心基類庫(kù),核心基類庫(kù)的作用是完成框架的通用性開發(fā)而必須的基礎(chǔ)類和常用工具類等,包含有:

Think.Core 核心類庫(kù)包

Think.Db 數(shù)據(jù)庫(kù)類庫(kù)包

Think.Util?系統(tǒng)工具類庫(kù)包

Think.Template 內(nèi)置模板引擎類庫(kù)包

Think.Exception 異常處理類庫(kù)包函數(shù)庫(kù)

ThinkPHP內(nèi)置了一個(gè)系統(tǒng)公共函數(shù)庫(kù),提供了一些系統(tǒng)需要的函數(shù),系統(tǒng)函數(shù)庫(kù)位于ThinkPHP的Common目錄下面,名稱為functions.php。

每個(gè)項(xiàng)目可以定義自己的函數(shù)庫(kù),位于項(xiàng)目的Common目錄下面的common.php文件。

如果項(xiàng)目在Common目錄下面有定義自己的common.php文件,框架會(huì)在初始化的時(shí)候自動(dòng)導(dǎo)入,而無(wú)需自己導(dǎo)入。

匹配導(dǎo)入

Import方法是ThinkPHP內(nèi)建的類庫(kù)和文件導(dǎo)入方法,提供了方便和靈活的類似于命名空間的文件導(dǎo)入機(jī)制。

自動(dòng)編碼轉(zhuǎn)換

ThinkPHP框架的文件全部采用UTF-8編碼格式,UTF-8的支持和自動(dòng)輸出編碼轉(zhuǎn)換的功能讓頁(yè)面表現(xiàn)更加靈活。您可以配置輸出的頁(yè)面編碼格式,如gb2312等(默認(rèn)采用UTF-8輸出)。系統(tǒng)根據(jù)配置文件中設(shè)置的編碼格式自動(dòng)對(duì)頁(yè)面進(jìn)行編碼轉(zhuǎn)換,支持iconv和mb_string兩種方式,為了提高效率,如果系統(tǒng)的模板編碼設(shè)置和輸出編碼設(shè)置項(xiàng)相同,則不會(huì)進(jìn)行編碼轉(zhuǎn)換。ThinkPHP可以設(shè)置模板編碼、輸出編碼和數(shù)據(jù)庫(kù)編碼,并自動(dòng)完成轉(zhuǎn)換工作,讓你的應(yīng)用不再受編碼的苦惱。

總結(jié)

以上是生活随笔為你收集整理的ThinkPHP的发展历程及特性的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费黄色大片 | 天堂网视频在线 | 中文字幕国产日韩 | 奶波霸巨乳一二三区乳 | 精品久久九九 | 天堂网在线最新版www中文网 | 天堂免费av | 日韩精品一区二区三区久久 | 麻豆人妻少妇精品无码专区 | 国产中文字字幕乱码无限 | 日本啪啪啪一区二区 | 国产黄色成人 | 第一区免费在线观看 | 免费看欧美片 | 小泽玛利亚一区二区三区视频 | 日韩极品视频 | 亚洲av永久无码国产精品久久 | 11一12免费毛片 | 日韩三级一区二区三区 | 美女啪啪一区二区 | 韩国美女主播跳舞 | 成人午夜视频在线 | 日本五十路 | www.国产com| 国产伦精品一区二区三区视频免费 | 相亲对象是问题学生在线观看 | 污污动态图 | 丁香婷婷一区二区三区 | 中文字幕精品无码亚 | 四虎视频国产精品免费入口 | 欧美成人国产精品一区二区 | 色热热 | 麻豆91精品 | 在线观看国产一区二区三区 | 日本人jizz| 三上悠亚一区二区在线观看 | 午夜色图| 久久久久久久久久久久久久 | 无码久久精品国产亚洲av影片 | 日本黄色一区二区 | 亚洲免费黄网 | 亚洲精品aa | 97久久国产亚洲精品超碰热 | 日韩av免费在线观看 | 日日摸夜夜添狠狠添久久精品成人 | 黑人操白妞 | 五月婷婷激情综合 | 天天想你在线观看完整版高清 | 又色又爽又高潮免费视频国产 | 四虎影院在线看 | 丁香激情五月少妇 | 国产精品99久久久久久久 | 麻豆av免费观看 | 欧美日韩黄色一级片 | 日本男男激情gay办公室 | 91精品人妻一区二区三区蜜桃2 | 国产欧美视频在线播放 | 亚洲视频不卡 | 天天综合网在线观看 | 国产九九精品 | 久久性感视频 | 黄瓜视频在线观看 | 国产伦精品一区二区三 | 美国一级大黄一片免费中文 | www.com污| 一级片免费观看视频 | 成人人人人人欧美片做爰 | 七七久久 | 国产成人免费片在线观看 | 亚洲日本欧美精品 | 日韩在线导航 | 性三级视频 | 涩漫天堂| 不卡的av电影 | 一区二区三区免费看 | 免费av的网站 | 国产亚韩| 捆绑少妇玩各种sm调教 | 日韩中文字幕视频在线观看 | 久久日精品 | 国产精品久久久久91 | 日韩精品视频在线播放 | 国产精品另类 | 色婷婷狠狠干 | 日本不卡一区二区在线观看 | 国产情侣一区二区 | 欧美日韩中文国产一区发布 | 91亚洲精品视频 | 国产毛片3 | 亚洲免费黄色 | 亚洲人人在线 | 伊人久久亚洲综合 | 亚洲综合在线一区二区 | 亚洲性自拍 | 国产av无码国产av毛片 | 性高潮久久久久久久久久 | 毛茸茸亚洲孕妇孕交片 | 6080久久| 黑人一级 |