Opencart system/modifications 文件夹如何运作?

How does the Opencart system/modifications folder function?

我对 OC 2.X 很陌生,当我对网站进行更改时我注意到它们没有出现。当我在 system/modifications 文件夹中进行更改时,出现了更改。我认为这个文件夹是新的,与 vqmod 无关。我认为这是一个基本上优先于核心文件的文件。

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

我想知道这总体上是如何工作的?我必须为我想做的每一个改变做一个新的扩展吗?

我找不到一个清晰简洁的解释来从开发人员的角度解释它。

可以说ocmodvqmod是一样的,但在某些方面有所不同,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;
}