亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

CodeIgniter使用總結(jié)

waltr / 1516人閱讀

摘要:最近在使用開(kāi)發(fā)一個(gè)企業(yè)站項(xiàng)目,一開(kāi)始是把前臺(tái)和后臺(tái)分開(kāi)作為兩個(gè)多帶帶的項(xiàng)目,但后來(lái)想想為啥不能放在一個(gè)項(xiàng)目里呢,便有了改造的想法。比如后臺(tái)控制器繼承基類,前臺(tái)控制器繼承基類。擴(kuò)展核心系統(tǒng)類,可以根據(jù)業(yè)務(wù)需要添加一些公共功能。

最近在使用CodeIgniter開(kāi)發(fā)一個(gè)企業(yè)站項(xiàng)目,一開(kāi)始是把前臺(tái)和后臺(tái)分開(kāi)作為兩個(gè)多帶帶的項(xiàng)目,但后來(lái)想想為啥不能放在一個(gè)項(xiàng)目里呢,便有了改造的想法。

先上一張最終的目錄結(jié)構(gòu)圖

application/
  |-- config/
  |     |-- routes.php
  |-- controllers/
  |     |-- backend/
  |     |-- frontend/
  |-- core/
  |     |-- MY_Controller.php
  |     |-- MY_Router.php
  |-- views/
  |     |-- backend/
  |     |-- frontend/
  |-- static/              
  |     |-- backend/
  |     |-- frontend/
  |-- index.php

這樣設(shè)計(jì)的的好處:
1、目錄結(jié)構(gòu)清晰
2、保持了單入口index.php

controllers/backend和controllers/frontend目錄下的控制器可以分別繼承不同的基類。比如:后臺(tái)控制器繼承基類Backend_Controller,前臺(tái)控制器繼承基類Frontend_Controller。
MY_Controller擴(kuò)展核心系統(tǒng)類CI_Controller,可以根據(jù)業(yè)務(wù)需要添加一些公共功能。
Backend_Controller和Frontend_Controller均繼承自MY_Controller。

那么問(wèn)題來(lái)了,Backend_Controller和Frontend_Controller定義在哪里呢。答案如下:


不指定任何控制器時(shí),希望能夠訪問(wèn)默認(rèn)控制器,所以我們?nèi)ピO(shè)置$route["default_controller"] = "frontend/XXX";但是訪問(wèn)會(huì)提示404錯(cuò)誤,到底是因?yàn)槭裁丛蚰亍?br>查看system/core/Router.php源碼

if (sscanf($this->default_controller, "%[^/]/%s", $class, $method) !== 2)
{
    $method = "index";
}

if ( ! file_exists(APPPATH."controllers/".$this->directory.ucfirst($class).".php"))
{
    // This will trigger 404 later
    return;
}

關(guān)鍵在于定義MY_Router類,重寫_set_default_controller方法

default_controller)) {
            show_error("Unable to determine what should be displayed. A default route has not been specified in the routing file.");
        }

        if(sscanf($this->default_controller, "%[^/]/%s", $class, $method) !== 2)
        {
            $method = "index";
        }
        
        if(is_dir(APPPATH."controllers/".$class)) {
            $this->set_directory($class);
            $class = $method;
            if (sscanf($method, "%[^/]/%s", $class, $method) !== 2) {
                $method = "index";
            }
        }

        if(!file_exists(APPPATH . "controllers/" . $this->directory.ucfirst($class) . ".php")) {
            return;
        }

        $this->set_class($class);
        $this->set_method($method);

        $this->uri->rsegments = [
            1 => $class,
            2 => $method
        ];
    }
}

Demo地址

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/26300.html

相關(guān)文章

  • CodeIgniter的密碼處理論

    摘要:永遠(yuǎn)使用哈希算法來(lái)處理密碼。絕不要使用弱哈?;蛞驯黄平獾墓K惴?,像或。只要你對(duì)密碼進(jìn)行哈希處理了,那么無(wú)論是技術(shù)上,還是在存儲(chǔ)上都沒(méi)有任何限制。 在你的應(yīng)用程序中正確處理密碼是非常關(guān)鍵的。前陣閱讀CI手冊(cè),發(fā)現(xiàn)CodeIgniter對(duì)密碼處理的總結(jié)對(duì)我很有幫助,把這個(gè)清單分享給大家,它告訴你什么該做,什么不該做。 絕不要以明文存儲(chǔ)密碼。永遠(yuǎn)使用 哈希算法 來(lái)處理密碼。 絕不要使用 ...

    Euphoria 評(píng)論0 收藏0
  • CodeIgniter的密碼處理論

    摘要:永遠(yuǎn)使用哈希算法來(lái)處理密碼。絕不要使用弱哈希或已被破解的哈希算法,像或。只要你對(duì)密碼進(jìn)行哈希處理了,那么無(wú)論是技術(shù)上,還是在存儲(chǔ)上都沒(méi)有任何限制。 在你的應(yīng)用程序中正確處理密碼是非常關(guān)鍵的。前陣閱讀CI手冊(cè),發(fā)現(xiàn)CodeIgniter對(duì)密碼處理的總結(jié)對(duì)我很有幫助,把這個(gè)清單分享給大家,它告訴你什么該做,什么不該做。 絕不要以明文存儲(chǔ)密碼。永遠(yuǎn)使用 哈希算法 來(lái)處理密碼。 絕不要使用 ...

    cuieney 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<