In diesem Artikel wird hauptsächlich die Verwendung der dynamischen Konfiguration des thinkPHP-Frameworks vorgestellt und die Vorkehrungen für dynamische Konfigurationsvorgänge vor thinkPHP3.0 und Cache-bezogene Vorkehrungen anhand von Beispielen analysiert Artikel
Beschreibt die Verwendung der dynamischen Konfiguration des thinkPHP-Frameworks. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Wenn ich kürzlich @ThinkPHP verwende, um ein System zu erstellen, muss ich eine Funktion verwenden, die die Systemkonfigurationsparameter dynamisch in einer Konfigurationsdatei speichert. In der Vergangenheit wurden beim Erstellen von Systemen die Projektkonfigurationsparameter vorab direkt in die Datei Config/Config.php geschrieben und dann im Projekt angewendet. Bei einigen Projekten müssen Benutzer jedoch Konfigurationsparameter entsprechend ihren eigenen Umständen dynamisch im Hintergrund festlegen. Im Allgemeinen haben wir zwei Möglichkeiten, diese Art von dynamischen Parametern zu konfigurieren: Eine besteht darin, in die Datenbank zu schreiben, und die andere darin, in die Konfigurationsdatei zu schreiben. Heute werde ich über die Verwendung von Konfigurationsdateien zur Implementierung dieser Funktion sprechen.
1. Einstellung der Konfigurationsdatei
Zuerst erstellen wir eine neue Konfigurationsdatei im TP-Projektkonfigurationsverzeichnis Config und nennen sie Einstellung .config.php, diese Datei wird zum Speichern dynamischer Parameter verwendet. Führen Sie dann die setting.config.php in die Hauptprojektkonfigurationsdatei Config.php ein, indem Sie Arrays zusammenführen. Auf diese Weise können die Konfigurationsparameter in setting.config.php im gesamten Projekt aufgerufen werden.
2. Implementieren Sie dynamische Verwaltungsparameter
Erstellen Sie im Hintergrund eine Funktion, die setting.config.php Der Standardwert wird ausgelesen und in einem Formular angezeigt. Dies kann mit der C-Funktion von TP implementiert werden. Anschließend können Sie den Wert jedes Parameters im Formular festlegen. Nachdem das Formular übermittelt und gespeichert wurde, werden die vom Formular übermittelten Werte wie folgt verarbeitet:
Die Struktur der Datei „setting.config.php“
<?php return array( 'setting'=>array( 'tel' => '400-088-7380', 'qq' => '88888888', ...... ), ); ?>
Der Vorgang zum Speichern von Konfigurationsparametern
function SaveSetting(){ //setting.config.php文件的路径,通过settingfile_path来设定; $setfile='./Home'.C('settingfile_path'); $a=C('setting'); //将默认配置参数的内容赋值给$a; $b=array( 'tel' => $_POST['tel'], 'web' => $_POST['web'], ........ ); //这里将新的参数值,通过后台的表单提交过来; $c=array_merge($a,$b) ;
Führen Sie die Arrays $a und $b zusammen 🎜> Funktion kann zwei Arrays zusammenführen, und wenn Array-Elemente denselben Schlüsselnamen haben, überschreiben nachfolgende Werte vorherige Werte (außer numerische Schlüsselnamen);array_merge()
$settingstr="<?php \n return array(\n'Setting' =>array(\n"; foreach($c as $key=>$v){ $settingstr.= "\t'".$key."'=>'".$v."',\n"; } $settingstr.="),\n);\n?>\n"; file_put_contents($setfile,$settingstr); //通过file_put_contents保存setting.config.php文件;
Einstellung. config.php Datei wurde aktualisiert;
schreibt: Es stimmt, dass die Eingabedatei ein Array ist, aber Sie können auf die Funktion verweisen. Es ist nicht erforderlich, das Array zu schleifen! var_export
$settingstr="<?php \n return array(\n'Setting' =>array(\n"; foreach($c as $key=>$v){ $settingstr.= "\t'".$key."'=>'".$v."',\n"; } $settingstr.="),\n);\n?>\n"; file_put_contents($setfile,$settingstr); //通过file_put_contents保存setting.config.php文件;
$settingstr = "<?php \n return array(\n'Setting' =>\n".var_export($c,true)." \n ?>"; file_put_contents($setfile,$settingstr); //通过file_put_contents保存
( Thinkphp3. Version 1 unterstützt bereits C-Funktionen zum Speichern der eingestellten Parameterwerte, daher ist diese Methode für TP-Versionen 3.0 und niedriger geeignet)
Außerdem wissen wir, dassTP für verwendet wird Beim ersten Ausführen werden alle Konfigurationsdateien, Konfigurationsparameter usw. des Projekts in einer Laufzeit-Cache-Datei generiert. Wenn wir den Inhalt von config aktualisieren, muss die Cache-Datei im Projekt gelöscht werden, bevor sie wirksam werden kann. Aus diesem Grund lassen wir das System den Cache löschen und die Parameter selbst aktualisieren. Der Code lautet wie folgt:
//RUNTIME_FILE常量是入口文件中配置的runtimefile的路径及文件名; if(file_exists(RUNTIME_FILE)){ unlink(RUNTIME_FILE); //删除RUNTIME_FILE; }
Das Löschen der runtime_file reicht nicht aus, Sie müssen die Dateien im Cache-Ordner löschen ; Der Code lautet wie folgt:
$cachedir=RUNTIME_PATH."/Cache/"; //Cache文件的路径; if ($dh = opendir($cachedir)) { //打开Cache文件夹; while (($file = readdir($dh)) !== false) { //遍历Cache目录, unlink($cachedir.$file); //删除遍历到的每一个文件; } closedir($dh); }
Über das Problem des thinkphp5.1-Dateieinführungspfads
Über den automatischen Lademechanismus autoLoad von PHP Analyse
Das obige ist der detaillierte Inhalt vonNutzungsanalyse der dynamischen Konfiguration des thinkPHP-Frameworks. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!