Возможно ли создать плагин, который будет поддерживать OpenCart 2.3 и 3.0 одновременно? - PullRequest
0 голосов
/ 09 января 2019

у нас есть плагин OpenCart, который поддерживает только версию 3.0. У нас есть задача добавить поддержку предыдущей версии OpenCart 2.3. Есть ли способ, как это сделать в одном плагине? Или нам нужно создать плагин для каждой версии?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Да, есть способы сделать это. Я думаю, что это огромная боль, чтобы поддерживать в полном объеме, и это может вызвать у вас огромную головную боль поддержки. Это потребует дополнительных файлов, таких как файлы с кодом, чтобы сначала обнаружить соответствующую версию OC, а затем необходимые функции в этих файлах, чтобы указать на различные структуры папок конкретной версии с соответствующими файлами версии. Затем вам придется учитывать тот факт, что вы заставляете людей нести два набора папок / файловых структур в своем каталоге opencart, когда им нужно использовать только один набор для соответствующей версии для плагина, на котором будет выполняться. Например, папки marketplace и extension отличаются в обеих версиях, которые вы упоминаете. Вот некоторые вещи, которые следует учитывать.

Вам нужно было бы установить глобальную переменную где-нибудь, чтобы сначала обнаружить и сохранить версию OC, что-то вроде:

global $oc_version;
$oc_version = (int)str_replace('.','',VERSION);

Тогда у вас будет целый набор функций, сообщающих oc, что делать с вашим модулем, в зависимости от обнаруженной версии oc, например, указание пути, куда запускать папку модуля и запускать twig или tpl. Что-то вроде:

if ($data['oc_version'] = 2300) 
 // Do Stuff
} elsif ($data['oc_version'] = 3000)
 // Do other stuff
}

Однако проблема, с которой вы столкнетесь здесь с моими примерами, заключается в том, что если кто-то использует версию, скажем, 3.0.2.0 (а не 3.0), и нет никаких изменений, которые действительно влияют на ваш модуль, то попытайтесь перейти на основе при обнаружении версии OC не будет работать. Вам придется сменить операторов, больше задуматься и т. Д. Следовательно, вам придется часто повторно модифицировать части одного и того же кода с любым вторым выпуском патча / версии. Я не понимаю, как это спасает тебя от работы в этом направлении.

0 голосов
/ 09 января 2019

теоретически возможно с использованием "https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=31589" и с небольшими изменениями в файлах контроллера. Но я предпочитаю конвертировать TPL в веточку.

...