摘要:最近在使用開發(fā)一個企業(yè)站項(xiàng)目,一開始是把前臺和后臺分開作為兩個多帶帶的項(xiàng)目,但后來想想為啥不能放在一個項(xiàng)目里呢,便有了改造的想法。比如后臺控制器繼承基類,前臺控制器繼承基類。擴(kuò)展核心系統(tǒng)類,可以根據(jù)業(yè)務(wù)需要添加一些公共功能。
最近在使用CodeIgniter開發(fā)一個企業(yè)站項(xiàng)目,一開始是把前臺和后臺分開作為兩個多帶帶的項(xiàng)目,但后來想想為啥不能放在一個項(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目錄下的控制器可以分別繼承不同的基類。比如:后臺控制器繼承基類Backend_Controller,前臺控制器繼承基類Frontend_Controller。
MY_Controller擴(kuò)展核心系統(tǒng)類CI_Controller,可以根據(jù)業(yè)務(wù)需要添加一些公共功能。
Backend_Controller和Frontend_Controller均繼承自MY_Controller。
那么問題來了,Backend_Controller和Frontend_Controller定義在哪里呢。答案如下:
不指定任何控制器時,希望能夠訪問默認(rèn)控制器,所以我們?nèi)ピO(shè)置$route["default_controller"] = "frontend/XXX";但是訪問會提示404錯誤,到底是因?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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26300.html
摘要:永遠(yuǎn)使用哈希算法來處理密碼。絕不要使用弱哈?;蛞驯黄平獾墓K惴ǎ窕?。只要你對密碼進(jìn)行哈希處理了,那么無論是技術(shù)上,還是在存儲上都沒有任何限制。 在你的應(yīng)用程序中正確處理密碼是非常關(guān)鍵的。前陣閱讀CI手冊,發(fā)現(xiàn)CodeIgniter對密碼處理的總結(jié)對我很有幫助,把這個清單分享給大家,它告訴你什么該做,什么不該做。 絕不要以明文存儲密碼。永遠(yuǎn)使用 哈希算法 來處理密碼。 絕不要使用 ...
摘要:永遠(yuǎn)使用哈希算法來處理密碼。絕不要使用弱哈?;蛞驯黄平獾墓K惴ǎ窕?。只要你對密碼進(jìn)行哈希處理了,那么無論是技術(shù)上,還是在存儲上都沒有任何限制。 在你的應(yīng)用程序中正確處理密碼是非常關(guān)鍵的。前陣閱讀CI手冊,發(fā)現(xiàn)CodeIgniter對密碼處理的總結(jié)對我很有幫助,把這個清單分享給大家,它告訴你什么該做,什么不該做。 絕不要以明文存儲密碼。永遠(yuǎn)使用 哈希算法 來處理密碼。 絕不要使用 ...
閱讀 1726·2021-11-22 15:33
閱讀 2102·2021-10-08 10:04
閱讀 3554·2021-08-27 13:12
閱讀 3429·2019-08-30 13:06
閱讀 1477·2019-08-29 16:43
閱讀 1400·2019-08-29 16:40
閱讀 794·2019-08-29 16:15
閱讀 2752·2019-08-29 14:13