Opencart 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

是否可以一次为vqmod生成所有vqcache文件

我想在服务器负载较低时运行此脚本一次,它将遍历所有qmod文件并应用所有更改,准备好并等待高负载

这还将提醒我任何vqmod错误,而不必等待它们发生

E、 g当我安装/卸载扩展时,我还需要使用以下工具卸载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;
}

之所以选择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-除非你的服务器出了问题,否则它会的。我知道这一点,因为我对它进行了编码;-)