麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > ThinkPHP > 正文

ThinkPHP實現動態配置config文件及動態清空緩存

2024-09-09 15:19:44
字體:
來源:轉載
供稿:網友

最近在用@ThinkPHP 做系統的時候,要用到一個功能,就要動態的將系統的配置參數保存到Config文件中,以往,我們做系統的時候,項目的配置參數都會直接事先寫入到Config/Config.php文件中,然后在項目中應用即可,但是,有些項目,用戶需要根據自己的情況將配置參數,通過后臺動態的來設置,這種動態的參數配置,一般我們有兩種方式,一種是寫入到數據庫,另一種就是寫入到配置文件,今天,我來說說用配置文件的形式來實現這一功能.

一、配置文件設置

首先,我們在TP項目配置目錄Config下新建一個配置文件,命名為setting.config.php,這個文件用以保存動態的參數,然后,項目主配置文件Config.php中用合并數組的方式,將setting.config.php合并進來,這樣,在整個項目中,即可調用setting.config.php中的配置參數了.

二、實現動態管理參數

在后臺,建立一個功能,將setting.config.php的默認值讀出,并顯示在一個表單中,這里可以使用TP的C函數實現,然后,即可在表單中對各個參數的值進行設置,表單提交保存后,將表單提交的值,進行處理,具體代碼如下.

setting.config.php文件的結構

  1. <?php 
  2. return array
  3. 'setting'=>array
  4. 'tel'  => '400-088-7380'
  5.                 'web'  => 'www.sinra.cn'
  6.                 'qq'   => '505531091'
  7.                 ...... 
  8.         ), 
  9. ); 
  10. ?> 
  11. //保存配置參數的操作 
  12. function SaveSetting(){ 
  13. //setting.config.php文件的路徑,通過settingfile_path來設定; 
  14. $setfile='./Home'.C('settingfile_path');  
  15. $a=C('setting');  //將默認配置參數的內容賦值給$a; 
  16. $b=array
  17.    'tel' => $_POST['tel'], 
  18.    'web' => $_POST['web'], 
  19.    ........ 
  20. ); 
  21. //這里將新的參數值,通過后臺的表單提交過來; 
  22. $c=array_merge($a,$b) ; //將數組$a和$b合并;我們知道,array_merge()函數,可以合并兩個數組,并且如果數組元素具有相同的鍵名,后面的值會覆蓋前面的值(數字鍵名除外); 

然后,將合并后的數組$c的值進行遍歷后,生成php文件代碼:

  1. $settingstr="<?php /n return array(/n'Setting' =>array(/n"
  2. foreach($c as $key=>$v){ 
  3. $settingstr.= "/t'".$key."'=>'".$v."',/n"
  4. $settingstr.="),/n);/n?>/n"
  5. file_put_contents($setfile,$settingstr); //通過file_put_contents保存setting.config.php文件; 

到此,setting.config.php文件的配置參數的值,已經被更新;

(Thinkphp3.1版本,已經支持C函數保存設置的參數值,所以,本方法,適合于3.0及以下版本的TP)

另外,我們知道TP在第一次運行時會把項目所有的配置文件,配置參數等,生成一個runtime緩存文件,如果我們更新了congfig 的內容,那么必須刪除項目中的緩存文件后才能生效,為此,我們讓系統自己來清空緩存,更新參數,代碼如下:

  1. //RUNTIME_FILE常量是入口文件中配置的runtimefile的路徑及文件名; 
  2. if(file_exists(RUNTIME_FILE)){ 
  3. unlink(RUNTIME_FILE); //刪除RUNTIME_FILE; 
  4. 光刪除runtime_file還不夠,要清空一下Cache文件夾中的文件;代碼如下: 
  5. $cachedir=RUNTIME_PATH."/Cache/";   //Cache文件的路徑; 
  6. if ($dh = opendir($cachedir)) {     //打開Cache文件夾; 
  7. while (($file = readdir($dh)) !== false) {    //遍歷Cache目錄, 
  8.      unlink($cachedir.$file);                //刪除遍歷到的每一個文件; 
  9. closedir($dh); 

到此,整個動態配置參數文件,并清空緩存的功能全部實現,以上代碼在TP3.0框架中,測試通過.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 九色在线78m | 成人免费福利网站 | 特级毛片a级毛片100免费 | 九九热精品在线 | 久久久国产精品成人免费 | 91九色论坛 | 国产美女的小嫩bbb图片 | 久久久久久久高清 | 日本成人在线播放 | 19禁国产精品福利视频 | 最新欧美精品一区二区三区 | 亚洲精品无码不卡在线播放he | 在线天堂中文在线资源网 | 毛片网站视频 | 成人综合在线观看 | 一二区成人影院电影网 | 久久精品久久精品国产大片 | 久久我不卡| 成人在线视频精品 | 日本教室三级在线看 | 国产99久久久久久免费看农村 | 免费观看国产视频 | 一区二区三区日韩电影 | 综合毛片 | 97风流梦电影 | 日韩视频高清 | 蜜桃传媒视频麻豆第一区免费观看 | 欧美精品一二三区 | 国产一区二区三区四区五区在线 | 国产精品久久久久久久亚洲按摩 | 亚洲一区在线观看视频 | 成人免费av在线播放 | av久草| 毛片大全在线观看 | 精品久久久久久久久久久久久 | wwwav国产| 一本一道久久久a久久久精品91 | 伦一区二区三区中文字幕v亚洲 | 欧美三级欧美成人高清www | 久草在线观看资源 | 成人在线视频播放 |