欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
CI
CI stand for CodeIgniter,代碼加速器,一個(gè)輕便的PHP框架. lightweigh對于PHP是很重要的,對于每一個(gè)請求,PHP都是重新初始化所有的資源,包括內存,數據庫,文件源. 請求結束后, 又將所有的資源銷(xiāo)毀掉,因此這PHP比較不會(huì )出現memery leak之類(lèi)的錯誤,就算代碼寫(xiě)得很爛.

在框架大行其道的時(shí)候,PHP也玩上了框架,越玩越大, PHP本身也越搞越復雜. 而框架的初始是需要很多資源的,特別是一些比較大的框架, 而很多時(shí)候的請求并不需要初始化太多東西, 因此PHP的開(kāi)發(fā)越來(lái)越快, 運行速度,性能就越來(lái)越慢.

基于PHP這種特性,且也不太喜歡他的語(yǔ)法, 因此大學(xué)結束后基本沒(méi)接觸過(guò)PHP. 后來(lái)因為項目關(guān)系, 重新拾起了PHP. 項目使用了CI框架, 所以也就對此進(jìn)行了研究.

CI 也玩MVC, 所有的請求都是通過(guò)前端index.php這個(gè)控制器, 根據URI轉發(fā)給相應的控制器完成業(yè)務(wù)邏輯, 數據結果傳給View, 前端控制器調用View的結果(Output)返回給web服務(wù)器. 整個(gè)過(guò)程比較清晰.

CI 關(guān)鍵類(lèi)是Config, Router, URI, Output
a. Config主要是加載系統的配置信息
b. URI通過(guò)分析請求URL(PATH_INFO,REQUEST_URI...),獲取請求信息,也叫request_string,比如請求/index.php/product/list/1/2, 分析結果是/product/list/1/2
c. Router通過(guò)URI的request_string,得到相應的類(lèi)和方法.CI的URI是restful的,約定大于配置.比如請求/index.php/product/list/1/2,表示請求Product類(lèi)的list方法, 1,2是傳給方法的參數(位置相關(guān))
d. 主控制器通過(guò)Router得到類(lèi)和方法, 調用,生成相應的結果Output. 主控制器返回結果給web服務(wù)器

CI 會(huì )初始化幾個(gè)關(guān)鍵的類(lèi), 之后需要用到的各種libraries, helper是通過(guò)Loader這個(gè)關(guān)鍵類(lèi)進(jìn)行動(dòng)態(tài)加載的.包括database相關(guān)的類(lèi), 各種應用相關(guān)的幫助類(lèi)

CI 的database
采用了Active Record這個(gè)模式, 可以向database發(fā)送平臺有關(guān)的sql命令,也可忽略database平臺,而采用Active Record.一開(kāi)始我是不想用ActiveRecord的,因為他把sql的各部分根據后臺數據庫平臺組裝成平臺相關(guān)的sql, 我是怕這里可能比較耗資源,也喜歡直接寫(xiě)長(cháng)長(cháng)的sql, 但是后來(lái)想想可能要支持多個(gè)數據庫,比如mysql, pgsql, oracle. 還是使用ActiveRecord.數據庫是相對比較耗資源的操作,數據能緩存就盡量緩存,能不初始化數據庫連接就不去初始化

CI的錯誤控制Exception
首先他將php的錯誤通過(guò)set_error_handler由自己控制, 通過(guò)Exception, Log將錯誤重新包裝,寫(xiě)入相關(guān)日志.對其他各種錯誤也是通過(guò)Exception,Log進(jìn)行處理.

CI的核心點(diǎn)Controller
Controller有各種關(guān)鍵類(lèi)的引用, 特別是loader, 可以在方法中加載需要的類(lèi).$this->load->module,$this->load->helper,$this->load->libraries, $this->load->database,$this->load->view
盡量只在需要的方法中load, 特別是database.

CI的數據模式Module類(lèi)

Module一般表示關(guān)系數據庫中的一個(gè)表, 相關(guān)的數據庫操作都可以在此操作, 結果由Controller來(lái)獲取.Module初始化的時(shí)候會(huì )將Controller的關(guān)鍵類(lèi)引用也導入自己的引用,因此他也有loader之類(lèi)的對象屬性

CI的展示層View類(lèi)
CI不推薦使用模板引擎, 他本身也有個(gè)簡(jiǎn)單的模板引擎.我也覺(jué)得在html中使用原生PHP好過(guò)新的模板語(yǔ)言,一來(lái)是模板語(yǔ)言最終還是要轉化為PHP,這有個(gè)性能問(wèn)題,二來(lái)嵌入html本就是PHP以前干的事,對前端也不會(huì )有太大的困擾,也不會(huì )有復雜的邏輯,更不會(huì )有業(yè)務(wù)相關(guān)邏輯.
View是通過(guò)Controller調用的,因此View里面可以使用$this->load->view()進(jìn)行頁(yè)面嵌套, 而Controller其他屬性對象如$this->db之類(lèi)的就不推薦使用了.
Controller將view的結果傳到Output類(lèi)中, 前端控制器調用Output相關(guān)方法取出結果返回web服務(wù)器


CI的一些問(wèn)題:
經(jīng)過(guò)研究CI的源碼, 發(fā)現一些不知是不是問(wèn)題的問(wèn)題
a.Loader加載library時(shí),會(huì )重新對已加載的Module進(jìn)行_assign_libraries,也就是為了將這個(gè)library的引用加入到Module,我覺(jué)得是多余的.因為一個(gè)library對Module不會(huì )有很大的作用,就算有,也可以在Module中自己加載,況且Module初始化時(shí)會(huì )自己_assign_libraries.因為library一般是先于Module進(jìn)行加載的.
Loader加載Module還有個(gè)_assign_libraries的重復操作

b. DB_driver中query方法,如果請求失敗, 如果沒(méi)有設置debug為true的話(huà),是沒(méi)有任何提示的, 我覺(jué)得應該在這個(gè)點(diǎn)上提供一個(gè)口,可以進(jìn)行Log之類(lèi)的操作.
還有就是DB_utility,DB_forge簡(jiǎn)直是雞肋, 這兩個(gè)類(lèi)基本是一些數據庫修改的操作,比如create_database,list_databases,這些方法對于想寫(xiě)phpAdmin之類(lèi)的應用可能比較有用,對一般的應用就是雞肋.而偏偏這些雞肋在數據庫加載時(shí)也加載了,簡(jiǎn)直是浪費資源

c. Router的 _parse_request_uri方法沒(méi)有效果,寫(xiě)得亂七八糟,最簡(jiǎn)單的就是將index.php跟之前的內容去掉,后面的內容就是所需的request_string

d. 還有scaffolding也是雞肋,CI也不推薦使用了,不安全.

f. 在linux下,文件名是區分大小寫(xiě)的,因此load controller,module時(shí)可能會(huì )出現找不到文件的錯誤,而在window下沒(méi)有此問(wèn)題.
所以controler的類(lèi)名應該跟url中的類(lèi)字段大小寫(xiě)一樣才行
至于module 可以在Loader.php中的module方法下注釋掉
$module = strtolower($module)

g.還有就是在linux下database.php配置文件的hostname如果是localhost的話(huà)會(huì )出現連接不了,可以換成127.0.0.1
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
【ZF2第一節】ZF2(Zend framework 2)啟動(dòng)流程和框架配置分析 | 粒子博客
CodeIgniter(CI)框架加載流程及結構分析
Android Cursor自動(dòng)更新的實(shí)現和原理 · KOHOH的技術(shù)博客
OpenFire源碼學(xué)習之四:openfire的啟動(dòng)流程
CI框架 簡(jiǎn)介
微擎模塊管理的執行路由
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久