Opencart vqmod为所有文件生成缓存
是否可以一次为vqmod生成所有vqcache文件 我想在服务器负载较低时运行此脚本一次,它将遍历所有qmod文件并应用所有更改,准备好并等待高负载 这还将提醒我任何vqmod错误,而不必等待它们发生 E、 g当我安装/卸载扩展时,我还需要使用以下工具卸载vqmod扩展:Opencart vqmod为所有文件生成缓存,opencart,Opencart,是否可以一次为vqmod生成所有vqcache文件 我想在服务器负载较低时运行此脚本一次,它将遍历所有qmod文件并应用所有更改,准备好并等待高负载 这还将提醒我任何vqmod错误,而不必等待它们发生 E、 g当我安装/卸载扩展时,我还需要使用以下工具卸载vqmod扩展: /** * install/uninstall vqmod files for extension * * @param string $action = install/uninstall */ private fu
/**
* 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;
}
之所以选择modCheck The startup.php,是因为它包括所需的文件和通过vqmod进行的更改。这是处理这种情况的正确方法吗 您可以使用诸如httrack之类的外部程序手动执行此操作。当您使用类似的应用程序爬行您的站点时,所有页面将在您的站点访问者之前被访问。因此,将创建所有缓存文件
你需要偶尔重复一下吗?如果是这样,您需要创建一个自爬网/或缓存生成器脚本 您可以使用诸如httrack之类的外部程序手动执行此操作。当您使用类似的应用程序爬行您的站点时,所有页面将在您的站点访问者之前被访问。因此,将创建所有缓存文件
你需要偶尔重复一下吗?如果是这样,您需要创建一个自爬网/或缓存生成器脚本 vQmod只是要求您删除最新版本中的
/vQmod/mods.cache
文件,以使其刷新。它还将在最新版本(2.3.X+)中重命名/删除/添加文件时重新生成,因此,除非您有较旧的版本,否则这不是问题。Erdinçêorbacı对于httrack工具来说是正确的,但有一个例外——它不会为任何管理页面生成vqcache文件,除非它登录到管理区域。当然,只需删除/vqmod/vqcache/vq2-*
文件和/vqmod/mods.cache
(如果存在)就足以强制重新生成vqmod只需删除最新版本的/vqmod/mods.cache
文件即可刷新。它还将在最新版本(2.3.X+)中重命名/删除/添加文件时重新生成,因此,除非您有较旧的版本,否则这不是问题。Erdinçêorbacı对于httrack工具来说是正确的,但有一个例外——它不会为任何管理页面生成vqcache文件,除非它登录到管理区域。当然,只要删除/vqmod/vqcache/vq2-*
文件和/vqmod/mods.cache
(如果存在)就足以强制重新生成我没有足够的声誉直接回复@dhaupin的评论,希望他们能看到这一点
我遇到了类似的问题,如下所述:
…并提出了一个似乎有效的快速/肮脏/黑客解决方案:
你可能会修改PHP代码,使其有助于解决你的问题。我没有足够的声誉来直接回复@dhaupin的评论,希望他们能看到这一点 我遇到了类似的问题,如下所述: …并提出了一个似乎有效的快速/肮脏/黑客解决方案:
您可能可以将PHP代码修改为有助于解决问题的代码。+1用于指出管理页面问题。是的,httrack可以导航到所有管理页面,即使您以某种方式登录(bco Ajax things)。。。但是我想没有必要缓存管理员页面。所以你需要至少手动删除vq2-*文件,不管你想说什么-删除mod并立即查看结果?似乎只是删除XML文件并不总是能立即奏效。@MikeiLL-不,如果您使用的是2.3版或更高版本,它们将重新生成automatically@JayGilford我不认为这会强制再生,它仍然需要等待被刺穿后才能生成新的缓存。只是在一个流量为0的测试站点上尝试了它,在这种情况下,它要修改一个helper类(从未在其他类之外直接使用)。永远不会在该文件上生成mod,因为它是引导的,并且“从未访问过”。有没有一种方法可以强迫它一次运行所有的mod,而不必等着被激怒呢?@dhaupin-除非你的服务器出了问题,否则它会的。我知道这一点,因为我对它进行了编码;-)+1用于指向管理页面问题。是的,httrack可以导航到所有管理页面,即使您以某种方式登录(bco Ajax things)。。。但是我想没有必要缓存管理员页面。所以你需要至少手动删除vq2-*文件,不管你想说什么-删除mod并立即查看结果?似乎只是删除XML文件并不总是能立即奏效。@MikeiLL-不,如果您使用的是2.3版或更高版本,它们将重新生成automatically@JayGilford我不认为这会强制再生,它仍然需要等待被刺穿后才能生成新的缓存。只是在一个流量为0的测试站点上尝试了它,在这种情况下,它要修改一个helper类(从未在其他类之外直接使用)。永远不会在该文件上生成mod,因为它是引导的,并且“从未访问过”。有没有一种方法可以强迫它一次运行所有的mod,而不必等着被激怒呢?@dhaupin-除非你的服务器出了问题,否则它会的。我知道这一点,因为我对它进行了编码;-)