目錄結構說明
- license.txt 許可協議
- user_guide 用戶手冊
- system 框架核心文件
- application 應用目錄
- index.php 入口腳本文件
CI中的MVC架構
- 入口文件:唯一一個讓瀏覽器直接請求的腳本文件
- 控制器(controller):協調模型和視圖
- 模型(model):提供數據,保存數據
- 視圖(view):蒐集用戶輸入、創建並提交表單、做顯示作用
- 動作(action):是控制器中的公開方法,用於被瀏覽器請求
訪問URL形式:CI框架採用的是一種pathinfo的url訪問形式,如:localhost/index.php/Welcome/index。從這個例子可以知道訪問的是Welcome控制器中的index方法。可以認爲url的結構是這樣的:IP/入口腳本文件/控制器/動作。
application目錄:
- controllers 控制器
- models 模型
- views 視圖
- 當第一次使用CI框架時,默認的控制器爲Welcome,默認動作爲index。
CI中的控制器
- 在CI框架中,控制器在定義時不用加上controller後綴,控制器的名字和定義的類名一致;
- 在定義一個新的控制器時,需要直接或者間接繼承CI_Controller類;
- 在類中,只有public關鍵字修飾的方法才能作爲被瀏覽器訪問的動作。
CI中的視圖
-
在CI框架中,若要加載一個視圖文件,如welcome_message.php文件,需要使用$this->load->view(‘welcome_message’)方法進行視圖加載。
-
CI框架與其它框架在視圖編輯上不同。CI框架使用原生的PHP來編輯視圖,不使用像smarty之類的模板引擎。
//一個簡單的原生PHP表格 <table border="l"> <tr> <td>編號</td> <td>姓名</td> <td>郵箱</td> </tr> <?php foreach($list as $item):?> <tr> <td><?=$item['id']?></td> <td><?=$item['name']?></td> <td><?=$item['mail']?></td> </tr> <?php endforeach;?> </table>
CI中的超級對象($this) 持續更新。。。。。。
-
CI框架的$this對象是一個控制器對象,包含有很多屬性,我們定義的控制器對象依賴於這些屬性來提供服務。
-
$this->load
:一個加載器,通過$this->load->view('文件');
來加載一個視圖。裝載器的實例在文件 system/core/Loader.php文件中定義。該屬性可以用於加載視圖 (view())、分配變量到視圖(vars())、裝載數據庫對象(database())、裝載模型對象(model())、裝載插件(helper())。 -
$this->uri
:是CI_URI類的實例,用於實現與URL相關的功能。可以通過$this->uri->segment(n);
來獲取URL中第n段的值(這與CI框架採用pathinfo形式的URL有關)。傳統的URL:入口文件/控制器/動作/參數1/值1/參數2/值2…,而爲了簡便URL,則採用的URL形式爲:入口文件/控制器/動作/值1/值2…,這樣的URL可以使用$this->uri->segment(n);
來取第n段的值。//URL: .../入口文件/控制器/動作/值1/值2 $this->uri->segment(3);//值1 $this->uri->segment(4);//值2