CI框架 -- 文件結構


這個本來是很基礎的東西,基本上用過CI的人都知道這些,原本是不消說的~但是因為畢業論文是關於CodeIgniter的,所以我必須把大大小小的東西都寫出來做成記錄~

CodeInigter,一個輕量,功能全面的PHP框架,使開發者可以輕易的使用MVC的結構來開發web應用。

下載一份CI的代碼(最新的為2012.10.08更新的2.1.3),我們可以看到根目錄下只有五個文件/文件夾,其中user_guide文件夾里為說明文檔,license.txt為許可協議,去掉user_guideCodeIgniter只有1M多一點,從這點就可以看出這是一個很輕量的框架。

甚於的文件只有三部分,index.phpsysterm文件夾和application文件夾。我們可以分開分析。

  • index.php

    index.php是CI的入口文件件,換句話說,用CI搭建的框架,我們發送的請求都是請求的這個文件,后面跟的controllermethod都是跟在URL后面的參數。

    比如http://localhost/index.php?/admin/main,問號以后實際上都是參數了。

    為了方便用戶瀏覽,我們在.htaccesshttp.conf里開啟了隱藏/index.php?,把URL寫成http://localhost/admin/main,但是不能被這個所迷惑,以為是直接訪問的admin/main

    至於這個文件的具體分析,在閱讀源碼的時候再詳解。

  • systerm文件夾

    從字面上我們也很容易理解到,這是CI的框架核心部分,基本上我們用CI做開發的時候是不要去改動這一部分的東西的(甚至包括index.php),當然如果你對這個框架非常熟悉並嘗試去修改這個框架,那你肯定要去修改這里面的部分了。

    我們可以看到這里面有coredatabasefontshelperslanguagelibraries六個文件夾(我們基本可以暫時忽略掉index.html.htaccess)。從字面意義上也很好理解。

    1. core,核心部分,包括CI框架的核心類,CI每運行一次,基本上這里面的文件都要運行一遍;
    2. database,和數據庫有關的,是數據庫驅動,CI支持多種數據庫,包括mySQL,SQL server等;
    3. fonts,字體,基本可以忽略;
    4. helpers,輔助函數,是一個很實用的部分,常用到的有urldate等,在我們編寫代碼的時候會經常用到;
    5. language,語言文件,用於多語言支持,以數組的形式編寫,默認只有English包;
    6. libraries,類庫,以類的形式存在,一些相對於helpers來說更重要的、模塊化、系統性較強的東西,如sessionZip、XML解析、單元測試等等;

    我們可以看到除了fonts文件夾,其他每個文件夾里都有很多內容,現在我們並不具體分析每個文件夾里的文件的作用。

  • application文件夾

    里面也是一些文件夾,我們依然從字面去理解,並簡單的看一下里面有些什么東西;

    1. cache,緩存,里面是空的;我們可以在這個地方放一些緩存,淡然這個緩存指的是緩存數據;
    2. config,這個文件夾里有一些文件,都是配置文件,每個文件的命名很很好懂了;同時我們也可以注意到這里面的文件和systerm/coresystemrm/libraries里面的文件具有一些相同名字的,顯然這些都是我們利用CI做一個web應用時需要去修改的配置文件;
    3. controllors,控制器,CI讓我們用MVC的模式去開發應用,那這個文件夾下放的就是我們的C的一部分了;控制器,處理業務邏輯,我們編寫的控制器類應該放在這里了;
    4. core,這里又有一個core,可以放對框架核心的擴展類;
    5. error,錯誤頁面存放的地方,里面可以看到404的頁面,我們可以修改它;
    6. helpers,空的文件夾,在這里放上我們自己添加的輔助函數;
    7. hooks,鈎子,官方文檔里說:使得您可以在不修改系統核心文件的基礎上來改變或增加系統的核心運行功能;一個需要去靈活運用的東西;
    8. language,放置語言文件;
    9. librariies,放置我們的類庫;
    10. logs,存放日志;
    11. models, M的部分,數據操作的函數應該放在這里了;
    12. third_party,如果要擴展CI的話,這也是需要用到的地方;
    13. views,V的部分,放置視圖文件,顯然這個里面的文件是整個CI里僅有的會有很多HTML的地方了;

    很明顯這個文件夾里大部分都是空文件夾,除了config里面有一些設置文件,errors里有如404之類的頁面。

    這個文件夾時CI預留給我們存放自己開發的項目的,每一類文件應該放置在什么地方都為我們歸好類了,大大簡化了開發流程和工作量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM