真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

thinkphp5.1支不支持extra

本篇文章和大家了解一下thinkphp5.1支不支持extra。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站制作、成都做網(wǎng)站與策劃設計,下城網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:下城等地區(qū)。下城做網(wǎng)站價格咨詢:18980820575

thinkphp5.1不支持extra,thinkphp5.1中config函數(shù)已經(jīng)取消了extra的支持;可以將“function editConfig($arr = [] ,$user='admin'){...}”代碼貼入app或者application文件夾內(nèi)的common.php中即可全局使用該函數(shù)。

thinkphp5.1是否支持extra?

不支持。

ThinkPHP5.1 使用文件作為配置文件

ThinkPHP5.1 使用文件作為配置文件的踩坑記錄

使用Tp5.1(版本限定)作為App后臺的時候,用戶頻繁的請求,每一步操作都要訪問數(shù)據(jù)庫,每一步操作都要訪問到 config 配置表,頻繁的讀取使數(shù)據(jù)庫壓力山大,在后臺監(jiān)控流量,發(fā)現(xiàn)將近30%的請求都是在訪問config表,所以決定將配置固話到本地,使用文件作為配置.

但是查詢多方資料,未能找到可以靜態(tài)修改配置,Tp5.1提供的Config::set()函數(shù)只能動態(tài)的修改配置文件,而且僅限于本控制器內(nèi),實際配置文件并沒有改變,這顯然不符合我們的要求.

經(jīng)查詢多方資料后,發(fā)現(xiàn)這篇最為靠譜,但是實測無效,

進入config函數(shù)后,發(fā)現(xiàn)Tp5.1中,config函數(shù)已經(jīng)取消了extra的支持,于是乎自己動手改寫了一下

不多說,直接暴力上 代碼.

/**
 * 修改擴展配置文件
 * @param array  $arr  需要更新或添加的配置
 * @param string $user 修改人
 * @return bool
 */
function editConfig($arr = [] ,$user='admin')
{
    if (is_array($arr)) {
        //獲取文件名
        $filename = 'business.php';
        //獲取配置文件環(huán)境變量位置(請確保開啟權限,如若報錯,請改為絕對路徑)
        $filepath = Env::get('CONFIG_PATH'). $filename;
        //判定配置文件是否存在
        if (!file_exists($filepath)  ) {
            if(!fopen($filepath, "w")){
                return 'PermissionError1';
            }
        }
        //判定權限是否足夠
        if (!is_writable($filepath)) {
            return 'PermissionError2';
        }
        //遍歷整個配置文件
        $conf = include $filepath;
        foreach ($arr as $key => $value) {
            $conf[$key] = $value;
        }
        //記錄修改者
        $time = date('Y/m/d H:i:s');
        $str = " $value) {
            if(is_array($value)){
                $str.="\t'$key'=>[\r\n";
                foreach ($value as $ikey=>$r) {
                    if(is_numeric($ikey)){
                        $str .= "\t\t'$r',";
                        $str .= "\r\n";
                    }else{
                        $str .= "\t\t'$ikey' => '$r',";
                        $str .= "\r\n";
                    }
                }
                $str = rtrim($str,',');
                $str .= "\t],"."\r\n";
            } else{
                $str .= "\t'$key' => '$value',";
                $str .= "\r\n";
            }
        }
        $str .= '];';
        //關閉文件
        $result = file_put_contents($filepath, $str);
        if($result){
            return 'success';
        } else {
            return $result;
        }
    } else {
        return 'error';
    }
}

將本段代碼貼入app(或者application)文件夾內(nèi)的common.php中,即可全局使用該函數(shù),進行修改配置文件.

范例:

在網(wǎng)站根目錄的config文件夾中建立一個business.php文件(注意讀寫權限),

控制器中調(diào)用修改函數(shù)

  public function setBusiness(){
        $arr = array(
            "WEB" => [
                "web_status"=>'1',
                1,3,4
            ],
        );
        $result=editConfig($arr,'admin123');
        if($result=='success'){
            echo ('修改成功');
        }elseif($result=='error'){
            echo ('修改失敗');
        }
        elseif($result=='PermissionError'){
            echo ('文件無權限,請聯(lián)系管理員');
        }
    }

config文件夾下的配置文件就會修改為

[
'web_status' => '1',
'1',
'3',
'4',
],
];

接下來,在其他控制器中,就可以直接使用config的法則來獲取各種配置文件了,具體規(guī)則,請移步TP5.1手冊配置獲取章節(jié).

邏輯程序直接從文件讀取配置,用戶讀取配置,可以設置緩存或者直接從redis里讀取.

以上就是thinkphp5.1支不支持extra的簡略介紹,當然詳細使用上面的不同還得要大家自己使用過才領會。如果想了解更多,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道哦!


本文名稱:thinkphp5.1支不支持extra
網(wǎng)站網(wǎng)址:http://weahome.cn/article/jisphs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部