以下內容從兄弟連的CI教學視頻中摘抄:
http://codeigniter.org.cn/tutorials/
-----------------------------------------------------------------------------------------------
Codeigniter框架
-----------------------------------------------------------------------------------------------
講師:鄒義良
微博:weibo.com/it266
-----------------------------------------------------------------------------------------------
主要內容
CI簡介
深入MVC設計模式
CI中的控制器與視圖
CI中的超級對象
數據庫訪問
AR模型
如何擴展CI的控制器
模型
url相關函數
設置路由
文件上傳
表單驗證
-----------------------------------------------------------------------------------------------
CI是什么?
CodeIgniter是一個輕量級但功能強大的php框架
基于MVC設計模式,提供了一套豐富的類庫
簡單易學,高效實用
官方網站
www.codeigniter.com
中文網站
http://codeigniter.org.cn
下載當前最新版本
CodeIgniter_2.1.4.zip
(截止2015.7.1最新版為3.0.0——筆者注)
有什么特點?
你想要一個小巧的框架
你需要出色的性能
你需要廣泛兼容標準主機上的各種 PHP 版本和配置
CI 2.1.4 需要PHP5.1.6
你想要一個幾乎只需 0 配置的框架
你想要一個不需使用任何命令符的框架
你想要一個不需堅守限制性編碼規則的框架
你不希望被迫學習一門模板語言(雖然可以選擇你喜歡的模板解析器)
你不喜歡復雜,熱愛簡單
你需要清晰,完整的文檔
目錄結構說明
license.txt許可協議
user_guide用戶手冊
syste框架核心文件
application應用目錄
index.php入口文件
-----------------------------------------------------------------------------------------------
MVC
1.入口文件
唯一一個讓瀏覽器直接請求的腳本文件
2.控制器
協調模型和視圖
3.模型
提供數據,保存數據
4.視圖
只負責顯示
表單...
5.動作action
是控制器中的方法,用于被瀏覽器請求
CI中的MVC
訪問url使用的是pathinfo
入口文件.php/控制器/動作
application目錄中:
controllers控制器
models模型
views視圖
默認控制器是welcome
默認動作是index
控制器
1.不需要加后綴
2.文件名全部小寫 例如 user.php
3.所有的控制器,直接或間接繼承自CI_Controller類
4.控制器中,對動作(方法)要求:
public
不能以_開頭
視圖
1.在控制器中如果加載視圖
//直接寫視圖名字,不寫擴展名,如果有子目錄,則寫上目錄名
2.視圖中,直接使用原生PHP代碼
3.推薦使用
<?php foreach($list as $item);?>
<?=$item['name']?>
<?php endforeach;?>
超級對象
當前的控制器對象
提供了很多屬性:
$this->load
裝載器類的實例 system/core/loader.php
裝載器類提供的方法:
view() 裝載視圖
vars() 分配變量到視圖
database()裝載數據庫操作對象
model() 裝載模型對象
helper()
$this->uri
是CI_URI類的實例 system/core/URI.php
CI_URI類提供的方法:
segment()用于獲取uri中的參數
傳統的:入口文件.php/控制器/動作/參數1/值1/參數2/值2
入口文件.php/控制器/動作/值1/值2
echo $this->segment(3);//值1
echo $this->segment(4);//值2
//index.php/控制器/index/6
public function index($p=0){ echo $p;//輸出6
}
$this->input
輸入類
是CI_URI類的實例 system/core/input.php
CI_URI類提供的方法:
$this->input->post('username');//等價于$_POST['username'];
$this->input->server('DOCUMENT_ROOT');//等價于$_SERVER['DOCUMENT_ROOT'];
$this->input->server('REMOTE_ADDR');
在視圖中,直接用$this來訪問超級對象中的屬性
數據庫訪問
修改配置文件
application/config/database.php
將數據庫訪問對象 裝載到超級對象的屬性中 $this->db
$this->load->query($sql);//返回對象
$res=$this->db->query($sql);//返回對象
$res->result();//返回數組,數組中是一個一個的對象
$res->result_array();//返回二維數組,里面是關聯數組
$res->row()//返回第一條數據,直接是一個對象
參數綁定 $sql="select * from blog_user where name=?"; $this->db->query($sql,$name);//如果有多個問號時,需要傳入一個索引數組
新聞熱點
疑難解答