codeigniter框架
講師:鄒義良
微博:weibo.com/it266
主要內容
ci簡介
深入mvc設計模式
ci中的控制器與檢視
ci中的超級物件
資料庫訪問
ar模型
如何擴充套件ci的控制器
模型url相關函式
設定路由
分頁檔案上傳
session
驗證碼表單驗證
ci是什麼?
codeigniter是乙個輕量級但功能強大的php框架
基於mvc設計模式,提供了一套豐富的類庫
簡單易學,高效實用
官方**
www.codeigniter.com
中文**
(截止2015.7.1最新版為3.0.0——筆者注)
有什麼特點?
你想要乙個小巧的框架
你需要出色的效能
你需要廣泛相容標準主機上的各種 php 版本和配置
ci 2.1.4 需要php5.1.6
你想要乙個幾乎只需 0 配置的框架
你想要乙個不需使用任何命令符的框架
你想要乙個不需堅守限制性編碼規則的框架
你不希望被迫學習一門模板語言(雖然可以選擇你喜歡的模板解析器)
你不喜歡複雜,熱愛簡單
你需要清晰,完整的文件
目錄結構說明
license.txt 許可協議
user_guide 使用者手冊
syste 框架核心檔案
index.php 入口檔案
mvc1.入口檔案
唯一乙個讓瀏覽器直接請求的指令碼檔案
2.控制器
協調模型和檢視
3.模型
提供資料,儲存資料
4.檢視
只負責顯示
表單...
5.動作action
是控制器中的方法,用於被瀏覽器請求
ci中的mvc
訪問url使用的是pathinfo
入口檔案.php/控制器/動作
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/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來訪問超級物件中的屬性
資料庫訪問
修改配置檔案
將資料庫訪問物件 裝載到超級物件的屬性中 $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);//如果有多個問號時,需要傳入乙個索引陣列
表字首$db['default']['dbprefix'] = 'new_';
$db['default']['swap_pre'] = 'swap_';
配置為一樣,**中,直接硬編碼表字首就行了,如果以後專案資料庫表字首發生變化,
只需要修改$db['default']['dbprefix'] = 'new_';**中的swap_會自動替換為new_
取自增id
$this->db->insert_id();
受影響行數
$this->db->affected_rows();
active record
確保$active_record = true;
$autoload['libraries'] = array(database);
3.在配置檔案中,正確配置表字首後,會自動新增
$res->$this->db->get('表名');//返回結果集物件
$res->result();
$bool=$this->db->insert('表名',關聯陣列);
$bool=$this->db->update('表名',關聯陣列,where條件);
$bool=$this->db->delete('表名',where條件);
//select uid,username from user where uid>=3 order by uid desc limit 2,3
$res=$this->db->select('uid,username')
->from('user')
->where('uid >=',1)
->limit(3,2)//跳過2條,取出3條資料
->order_by('uid desc')
->get();
//顯示最進一條sql語句
echo $this->db->last_query();
//where
//$res=$this->db->where('username','marry')->get('user');
//$res=$this->db->where('username !=','marry')->get('user');
//$res=$this->db->where('username','marry')->get('user');
$res=$this->db->where(array('username'=>'hanyile','uid <'=>3))->get('user');
echo $this->db->last_query();
複雜的查詢請用$this->db->query($sql,$data);//使用問號繫結查詢
擴充套件ci控制器
控制器就可以繼承自my_controller
$config['subclass_prefix'] = 'my_';
模型在模型中,可以直接使用超級物件中的屬性
CodeIgniter框架介紹
入口 index.php 一些路徑常量定義 codeigniter.php 1.初始化一些 system core內的類,例如config,utf8,uri 和router等,router.set routing 處理路由對映。2.全域性函式get instance,取controller例項引用,...
敏捷 PHP 框架 CodeIgniter
codeigniter 是一套給 php 開發者使用的應用程式開發框架和工具包。她提供一套豐富的標準庫以及簡單的介面和邏輯結構,其目的是使開發人員更快速地進行專案開發。使用 codeigniter 可以減少 的編寫量,並將你的精力投入到專案的創造性開發上。她是乙個小巧但功能強大的 php 框架,作為...
codeIgniter框架基本結構 (二)
color blue b size medium codeigniter base size b color color red codeigniter base4.php color 和 color red codeigniter base5.php color 功能一樣,只不過分別適用於 php...