CodeIgniter框架學習要點

2022-04-02 06:41:37 字數 4228 閱讀 2256

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...