国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah rangka kerja php ThinkPHP Adakah thinkphp5.1 menyokong tambahan?

Adakah thinkphp5.1 menyokong tambahan?

Dec 12, 2022 am 09:38 AM
thinkphp5.1 extra

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

Adakah thinkphp5.1 menyokong tambahan?

本教程操作環(huán)境:Windows7系統(tǒng)、ThinkPHP5版、Dell G3電腦。

thinkphp5.1是否支持extra?

不支持。

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

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

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

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

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

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

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

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

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

范例:

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

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

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

config文件夾下的配置文件就會(huì)修改為

<?php
/**
 * 由admin123修改.
 * 2019/11/22 13:00:27
 */
return [
&#39;WEB&#39;=>[
&#39;web_status&#39; => &#39;1&#39;,
&#39;1&#39;,
&#39;3&#39;,
&#39;4&#39;,
],
];

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

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

推薦學(xué)習(xí):《thinkPHP視頻教程

Atas ialah kandungan terperinci Adakah thinkphp5.1 menyokong tambahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276