- 重映射方法:_remap()
CI中的url中的兩端通常是控制器名和方法名,如果我們想改變這種規(guī)則就可以使用_reamp方法迄本;該方法可以將ur中的方法名當(dāng)做參數(shù)傳入,進(jìn)行邏輯處理后在確定調(diào)用哪個(gè)方法课竣;可以實(shí)現(xiàn)驗(yàn)證用戶登錄類型等功能嘉赎;
//如果訪問(wèn)add1()方法就讓其訪問(wèn)edit()方法置媳,否則訪問(wèn)原有方法
public function _remap($method)
{
if ($method === 'add1')
{
$this->edit();
}
else
{
$this->$method();
}
}
- URL輔助函數(shù)
- site_url():包含了index.php,以及在配置文件中設(shè)置的url_suffix(url后綴公条,如:.html)參數(shù)半开,直接在括號(hào)內(nèi)添加控制器名/方法名/參數(shù),添加的參數(shù)可以是字符串赃份,也可以是數(shù)組寂拆,將控制器名,方法名抓韩,參數(shù)添加到數(shù)組里進(jìn)行傳遞;
- base_url():和site_url()相同纠永,只是不包含index.php和url_suffix參數(shù);
- current_url():返回當(dāng)前頁(yè)面完整的url;
- uri_string():返回包含該函數(shù)的頁(yè)面的 URI 分段(只返回控制器名/方法名/參數(shù))
- index_page():返回配置文件中的index_page參數(shù);
- anchor($uri = '', $title = '', $attributes = ''):url鏈接,三個(gè)參數(shù)分別是url地址谒拴,鏈接文本和鏈接屬性(字符串或數(shù)組)
- 視圖文件中創(chuàng)建鏈接:anchor()
//點(diǎn)擊‘跳轉(zhuǎn)’會(huì)直接跳轉(zhuǎn)到前面寫(xiě)的url
<?php echo anchor('blog/comments', '跳轉(zhuǎn)');?>
- 我們可以對(duì)CI原生的輔助函數(shù)和類庫(kù)進(jìn)行擴(kuò)展尝江、替換,還可以創(chuàng)建自定義的輔助函數(shù)和類庫(kù)英上,但是數(shù)據(jù)庫(kù)類不能被擴(kuò)展和替換炭序。如果在加載類庫(kù)時(shí),通過(guò)第二參數(shù)傳遞一個(gè)數(shù)組苍日,則該數(shù)組會(huì)被傳遞到構(gòu)造函數(shù)中惭聂;如果出入?yún)?shù),你寫(xiě)的構(gòu)造函數(shù)也必須加上參數(shù)相恃。
- 通常情況下我們通過(guò)$this調(diào)用CI中可用的方法辜纲,但是$this只能在控制器、模型和視圖中使用拦耐,如果你想在自己定義的類中使用CodeIgniter類耕腾,就必須使用以下方法,該方法是通過(guò)引用來(lái)傳遞杀糯,并不是創(chuàng)建一個(gè)新的對(duì)象扫俺。
//自定義類中必須用這種方法使用CodeIgniter
$CI =& get_instance();
$CI->load->helper('url');
-
自動(dòng)加載:
在application/config/autoload.php中配置,支持自動(dòng)加載的如下:- library核心類庫(kù)
- helpers輔助函數(shù)
- config用戶自定義配置文件
- system/language下的語(yǔ)言文件
- models模型類
設(shè)置自己的路由規(guī)則
在config/route.php中配置自己的路由規(guī)則:
$route['aaa'] = 'member/add1';
配置完成后固翰,程序中所有用到member/add1路由的地方都可以使用aaa替代狼纬,同時(shí)通過(guò)member/add1也可以繼續(xù)訪問(wèn),這樣隱藏了自己真實(shí)的url倦挂;
- 頁(yè)面緩存
將下面一段代碼放在方法的任意一個(gè)地方畸颅,頁(yè)面數(shù)據(jù)就會(huì)進(jìn)行緩存;
//$n便是頁(yè)面緩存n分鐘
$this->output->cache($n);
如果想要?jiǎng)h除緩存方援,可以直接刪除方法的這一行代碼没炒,但是刪除代碼后不會(huì)立即生效,必須等到緩存過(guò)期后才會(huì)生效;也可以手動(dòng)添加代碼進(jìn)行刪除:
$this->output->delete_cache();
- 程序分析器
$this->output->enable_profiler(TRUE);
直接在方法最后加上該行代碼送火,當(dāng)調(diào)用此方法時(shí)拳话,就會(huì)在頁(yè)面底部顯示分析報(bào)告;
image.png
- 通過(guò)CLI方式訪問(wèn)項(xiàng)目
首先打開(kāi)終端种吸,cd到項(xiàng)目所在目錄弃衍,輸入$ php index.php login index,會(huì)和瀏覽器打開(kāi)一樣坚俗,如:在controllers新建login類镜盯,添加方法message,方法內(nèi)容為
<?php
class Login extends CI_Controller {
public function message($to = 'World')
{
echo "Hello {$to}!".PHP_EOL;
}
}
此時(shí)輸入命令后會(huì)直接顯示”Hello Word猖败!“