您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關ci框架和thinkphp有哪些區別的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
區別:1、CI沒有強制綁定模板對數據庫的操作,而ThinkPHP有;2、ThinkPHP講究使用的便利性,提供了很多函數助手,而CI的使用比較麻煩冗長;3、CI的視圖文件不可配置,而TP的視圖文件可配置。4、TP提供多種調試方法,CI沒有。
本教程操作環境:Windows7系統、thinkphp v5.1版、Dell G3電腦。
ThinkPHP與CI的功能做下對比:
模型(Model):模板相當于對數據的操作,數據存放的形式有多種:如數據庫、文件系統、內存等。CI沒有強制綁定模板對數據庫的操作,而ThinkPHP(以下稱TP)默認跟數據庫操作強相關,確實實際中操作的數據一般都是數據庫的,但要操作其他存儲類型的數據要怎么辦呢?其實TP只是提供了操作數據的許多便利接口,只要不使用這些接口,還是不耦合的;而且存儲類型的驅動是可配置的,比如可改為文件數據操作。所以TP要方便的多。
命名空間的使用。CI黨體會不到命名空間帶來的便利與優雅。CI使用$this->load()導入不同模塊的兩個model時應該是沖突的,應該是可以覆蓋,但使用起來就不方便了。
TP很講究使用的便利性,所以提供了很多函數助手,一般正常使用是$a=Class::function();,使用助手之后一般是$a = class();,便利了不少,這個使用上看習慣吧。CI就要麻煩冗長地寫成$this->class->function()。
說說視圖(view)與模板(template)。CI的視圖文件的存放位置是application/view下面,而且不可配置,至少我沒找到可以配置的地方。TP的view目錄可配置,而且不一定要在application下,對安全訪問和視圖定制與替換提供比較大的便利性。
對于模板,CI實現得比較雞肋,雖說有個模板解析類 $this->load->library('parser'); 可以通過左邊這代碼加載,但是只能實現變量的簡單替換,較復雜的控制結構就實現不了了,到頭來還是用原生的php代碼實現(我估計官方也提倡用原生,畢竟原生不用多解析一般,效率上占優,語法也不用再學一套)。
而TP的模板就比較全面和成熟,有自己的一套語法,基本上是不用夾雜原生php,也許對于前端工程師來說是個好事吧,不用學php,就學個模板語法。前后端分工也就更加明確了。
現在一想,CI和TP的MVC目錄結構有著比較大的區別:
CI的controllers、view、model就各分別一個目錄,模塊的劃分是以上面各目錄下新建子目錄作為模塊目錄,或者干脆沒有模塊的概念,直接在目錄下創建控制器和模型等。
而TP是以模塊作為基本的隔離單元,默認各個模板所對應的目錄下都有一個controllers、view、model目錄。
至于調試(debug),TP絕對是甩CI幾條街,官方提供的方法就有:
而CI只有簡單的將錯誤的調用暫打印出來,雖說這已經可以解決60%以上的問題了。
感謝各位的閱讀!關于“ci框架和thinkphp有哪些區別”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。