這個本來是很基礎的東西,基本上用過CI的人都知道這些,原本是不消說的~但是因為畢業論文是關於CodeIgniter的,所以我必須把大大小小的東西都寫出來做成記錄~
CodeInigter,一個輕量,功能全面的PHP框架,使開發者可以輕易的使用MVC的結構來開發web應用。
下載一份CI的代碼(最新的為2012.10.08
更新的2.1.3
),我們可以看到根目錄下只有五個文件/文件夾,其中user_guide
文件夾里為說明文檔,license.txt
為許可協議,去掉user_guide
的CodeIgniter
只有1M多一點,從這點就可以看出這是一個很輕量的框架。
甚於的文件只有三部分,index.php
、systerm
文件夾和application
文件夾。我們可以分開分析。
-
index.php
index.php是CI的入口文件件,換句話說,用CI搭建的框架,我們發送的請求都是請求的這個文件,后面跟的
controller
和method
都是跟在URL后面的參數。比如
http://localhost/index.php?/admin/main
,問號以后實際上都是參數了。為了方便用戶瀏覽,我們在
.htaccess
和http.conf
里開啟了隱藏/index.php?
,把URL寫成http://localhost/admin/main
,但是不能被這個所迷惑,以為是直接訪問的admin/main
。至於這個文件的具體分析,在閱讀源碼的時候再詳解。
-
systerm文件夾
從字面上我們也很容易理解到,這是CI的框架核心部分,基本上我們用CI做開發的時候是不要去改動這一部分的東西的(甚至包括
index.php
),當然如果你對這個框架非常熟悉並嘗試去修改這個框架,那你肯定要去修改這里面的部分了。我們可以看到這里面有
core
、database
、fonts
、helpers
、language
、libraries
六個文件夾(我們基本可以暫時忽略掉index.html
和.htaccess
)。從字面意義上也很好理解。core
,核心部分,包括CI框架的核心類,CI每運行一次,基本上這里面的文件都要運行一遍;database
,和數據庫有關的,是數據庫驅動,CI支持多種數據庫,包括mySQL,SQL server等;fonts
,字體,基本可以忽略;helpers
,輔助函數,是一個很實用的部分,常用到的有url
、date
等,在我們編寫代碼的時候會經常用到;language
,語言文件,用於多語言支持,以數組的形式編寫,默認只有English
包;libraries
,類庫,以類的形式存在,一些相對於helpers
來說更重要的、模塊化、系統性較強的東西,如session
、Zip
、XML解析、單元測試等等;
我們可以看到除了
fonts
文件夾,其他每個文件夾里都有很多內容,現在我們並不具體分析每個文件夾里的文件的作用。 -
application文件夾
里面也是一些文件夾,我們依然從字面去理解,並簡單的看一下里面有些什么東西;
cache
,緩存,里面是空的;我們可以在這個地方放一些緩存,淡然這個緩存指的是緩存數據;config
,這個文件夾里有一些文件,都是配置文件,每個文件的命名很很好懂了;同時我們也可以注意到這里面的文件和systerm/core
、systemrm/libraries
里面的文件具有一些相同名字的,顯然這些都是我們利用CI做一個web應用時需要去修改的配置文件;controllors
,控制器,CI讓我們用MVC的模式去開發應用,那這個文件夾下放的就是我們的C的一部分了;控制器,處理業務邏輯,我們編寫的控制器類應該放在這里了;core
,這里又有一個core
,可以放對框架核心的擴展類;error
,錯誤頁面存放的地方,里面可以看到404
的頁面,我們可以修改它;helpers
,空的文件夾,在這里放上我們自己添加的輔助函數;hooks
,鈎子,官方文檔里說:使得您可以在不修改系統核心文件的基礎上來改變或增加系統的核心運行功能;一個需要去靈活運用的東西;language
,放置語言文件;librariies
,放置我們的類庫;logs
,存放日志;models
, M的部分,數據操作的函數應該放在這里了;third_party
,如果要擴展CI的話,這也是需要用到的地方;views
,V的部分,放置視圖文件,顯然這個里面的文件是整個CI里僅有的會有很多HTML的地方了;
很明顯這個文件夾里大部分都是空文件夾,除了
config
里面有一些設置文件,errors
里有如404之類的頁面。這個文件夾時CI預留給我們存放自己開發的項目的,每一類文件應該放置在什么地方都為我們歸好類了,大大簡化了開發流程和工作量。