CI(CodeIgniter )鉤子的使用

如果有人用過laravel,那么一定知道中間件,我們用他做授權(quán)管理特別爽。我在使用CI時(shí),也在想CI中是否也有類似laravel中間件的方法。

我一開始用使用繼承控制器,在父類的__construct方法里面做授權(quán)判斷。

后來隨著我對(duì)CI的了解,發(fā)現(xiàn)有個(gè)叫鉤子的東西。我目前的理解是這個(gè)鉤子是在運(yùn)行我們創(chuàng)建的控制前執(zhí)行的方法。

使用的方法記錄下:

1、在config.php中打開鉤子擴(kuò)展

設(shè)置為TRUE

2、在hooks.php中添加鉤子配置

$hook['post_controller_constructor'][] = array(
    'class' => 'ManageAuth',            //類名
    'function' => 'auth',               //執(zhí)行的方法
    'filename' => 'ManageAuth.php',     //文件名
    'filepath' => 'hooks'              //文件路徑,默認(rèn)是application/hooks
);

3、創(chuàng)建你的鉤子程序文件ManageAuth.php

class ManageAuth
{
    private $CI;
    public function __construct()
    {
        $this->CI = &get_instance();  //獲取CI對(duì)象
    }
    //權(quán)限認(rèn)證
    public function auth()
    {
        $this->CI->load->helper('url');
        if(preg_match("/welcome.*/i",uri_string()))
        {
            //需要進(jìn)行權(quán)限檢查的url
            $this->CI->load->library('session');
            if(!$this->CI->session->userdata('username'))
            {
                //用戶未登錄
                redirect('login');
                return;
            }
        }
    }

最后再附上 鉤子的官方文檔,寫的很清楚。

http://codeigniter.org.cn/user_guide/general/hooks.html

[獲取授權(quán)]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文鏈接 必備品 文檔:Documentation API:API Reference 視頻:Laracasts ...
    layjoy閱讀 8,719評(píng)論 0 121
  • 市面上常見的php框架有很多,最近因?yàn)橛屑夹g(shù)需求,所以對(duì)常見的php框架的中間件進(jìn)行了一些了解。各個(gè)框架盡管在目標(biāo)...
    selbstkennen梁晨閱讀 11,926評(píng)論 7 29
  • Composer Repositories Composer源 Firegento - Magento模塊Comp...
    零一間閱讀 4,021評(píng)論 1 66
  • 有人說phper的深入要從研讀mvc框架開始,我跳了一個(gè)常用的CI框架入手,一是因?yàn)?CI框架簡單輕巧,二是...
    chanya閱讀 3,011評(píng)論 1 21
  • itchat是一個(gè)開源的微信號(hào)個(gè)人號(hào)接口,使用python調(diào)用微信 itchat API列表 1. 安裝itcha...
    lutl閱讀 6,377評(píng)論 0 4

友情鏈接更多精彩內(nèi)容