這個原本是很基礎的東西,基本上用過CI的人都知道這些,本來是不消說的~可是由於畢業論文是關於CodeIgniter的,因此我必須把大大小小的東西都寫出來作成記錄~php
CodeInigter,一個輕量,功能全面的PHP框架,使開發者能夠輕易的使用MVC的結構來開發web應用。html
下載一份CI的代碼(最新的爲2012.10.08
更新的2.1.3
),咱們能夠看到根目錄下只有五個文件/文件夾,其中user_guide
文件夾裏爲說明文檔,license.txt
爲許可協議,去掉user_guide
的CodeIgniter
只有1M多一點,從這點就能夠看出這是一個很輕量的框架。web
甚於的文件只有三部分,index.php
、systerm
文件夾和application
文件夾。咱們能夠分開分析。數據庫
index.php數組
index.php是CI的入口文件件,換句話說,用CI搭建的框架,咱們發送的請求都是請求的這個文件,後面跟的
controller
和method
都是跟在URL後面的參數。緩存
好比
http://localhost/index.php?/admin/main
,問號之後實際上都是參數了。session
爲了方便用戶瀏覽,咱們在
.htaccess
和http.conf
裏開啓了隱藏/index.php?
,把URL寫成http://localhost/admin/main
,可是不能被這個所迷惑,覺得是直接訪問的admin/main
。app
至於這個文件的具體分析,在閱讀源碼的時候再詳解。框架
systerm文件夾ide
從字面上咱們也很容易理解到,這是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預留給咱們存放本身開發的項目的,每一類文件應該放置在什麼地方都爲咱們歸好類了,大大簡化了開發流程和工做量。