vqmod のすべての vqcache ファイルを一度に生成することはできますか?
サーバーの負荷が低く、すべてのqmodファイルを調べてすべての変更を適用し、準備ができて高負荷を待っているときに、このスクリプトを1回実行したいと思います。
これにより、エラーが発生するのを待つのではなく、vqmod エラーについても警告が表示されます。
たとえば、拡張機能をインストール/アンインストールするときは、次のように vqmod 拡張機能もアンインストールする必要があります。
/**
* install/uninstall vqmod files for extension
*
* @param string $action = install/uninstall
*/
private function _vqmodAction($action){
$vqmod_path = str_replace("system", "vqmod", DIR_SYSTEM);
// Clear vqmod cache
$files = glob($vqmod_path.'vqcache/vq*');
if ($files) {
foreach ($files as $file) {
if (file_exists($file)) {
@unlink($file);
clearstatcache();
}
}
}
// Force vqmod to re-generate cache
global $vqmod;
$vqmod->modCheck(DIR_SYSTEM . 'startup.php');
// Re-name vqmod files
$vqmod_xml_path = $vqmod_path . "xml/";
$vqmod_files = array('file', 'file_languages', 'file_admin');
foreach($vqmod_files as $filename){
if($action == "uninstall"){
$from = '.xml';
$to = '.xml_';
} else {
$from = '.xml_';
$to = '.xml';
}
if (file_exists($vqmod_xml_path.$filename.$from)) {
rename($vqmod_xml_path.$filename.$from, $vqmod_xml_path.$filename.$to);
}
}
return true;
}
startup.php を modCheck する理由は、必要なファイルと vqmod によって行われた変更が含まれているためです。これは、この状況を処理する正しい方法ですか?