Opencart系统/修改文件夹如何工作?

Opencart系统/修改文件夹如何工作?,opencart,Opencart,我是OC2.X的新手,我注意到当我对站点进行更改时,它们并没有出现。当我转到system/modifications文件夹中的change时,出现了更改。我认为这个文件夹是新的,与vqmod无关。我认为这是一个文件夹,基本上优先于核心文件 不幸的是,当我安装一个插件时,它也重建了那个文件夹,所以我丢失了所有的更改(我假设是这样) 我想知道这是怎么工作的?我必须为我想做的每一个更改做一个新的扩展吗 我找不到一个清晰简洁的解释来解释开发人员的观点。您可以说,ocmod与vqmod相同,但在某些方面有

我是OC2.X的新手,我注意到当我对站点进行更改时,它们并没有出现。当我转到system/modifications文件夹中的change时,出现了更改。我认为这个文件夹是新的,与vqmod无关。我认为这是一个文件夹,基本上优先于核心文件

不幸的是,当我安装一个插件时,它也重建了那个文件夹,所以我丢失了所有的更改(我假设是这样)

我想知道这是怎么工作的?我必须为我想做的每一个更改做一个新的扩展吗


我找不到一个清晰简洁的解释来解释开发人员的观点。

您可以说,
ocmod
vqmod
相同,但在某些方面有所不同,在opencart 2.0及更高版本中默认提供。每次对模块进行任何更改时,都必须重置修改缓存以查看其效果。像
vqmod
ocmod
一样,也会生成缓存文件,并将其放在修改文件夹中。此文件夹中的文件将优先于原始文件。由于我认为您正在修改修改文件中的文件,若从管理面板中清除修改缓存,则可能会丢失这些文件

您可以查看
system/startup.php
文件以了解更多信息

// Modification Override
function modification($filename) {
if (!defined('DIR_CATALOG')) {
    $file = DIR_MODIFICATION . 'catalog/' . substr($filename, strlen(DIR_APPLICATION));
} else {
    $file = DIR_MODIFICATION . 'admin/' .  substr($filename, strlen(DIR_APPLICATION));
}

if (substr($filename, 0, strlen(DIR_SYSTEM)) == DIR_SYSTEM) {
    $file = DIR_MODIFICATION . 'system/' . substr($filename, strlen(DIR_SYSTEM));
}

if (is_file($file)) {
    return $file;
}

return $filename;
}