vQmod (OCMod) - что это?
Что такое vQmod (OCMod)?
vQmod (OCMod с версии OpenCart 2.0.0.0) - это система модификации движка без изменения файлов самого движка. Для внесения изменений в код движка вы вместо того, чтобы править код файлов движка создаете xml файл для vqmod в котором согласно правилам прописываете где (в каком файле) что (какую часть кода) нужно заменить (добавить какой-то новый код или изменить существующий). После этого при новой загрузке opencart согласно этим правилам изменяет нужные файлы и записывает уже измененные файлы в папку кеша, после чего при следующих загрузках уже использует кешированые копии этих файлов что почти не влияет на скорость загрузки сайта. При этом оригинальные файлы движка остаются не тронутыми, что теоретически может упростить смену версии движка сайта.
Читать также: Установка vQmod
Это из хорошего. Теперь из плохого - недостатки vQmod.
На самом деле их много, мало того, автор этого блока считает vQmod наибольшим злом для OpenCart. Считаю небезосновательно, а основываясь на своем многолетнем опыте работы с OpenCart, за это время написал несколько десятков модулей для OpenCart, выполнил десятки заданий по OpenCart и исправил наверное до сотни разных конфликтов, большинство из которых возникло именно из-за vQmod. Почему так? Потому что vQmod на самом деле этот не полноценный инструмент, а самый натуральный "костыль", который не решает проблему, а предлагает быстрое и неправильное ее решение. Вместо того, чтобы реализовать в OpenCart нормальную систему модификации движка, основанную на хуках, как в Drupal или событиях, как в Symfony, создатели этого движка решили упростить себе жизнь и создали свое недо-решение проблемы. Почему это плохо? Основная причина это конфликты. Если в Drupal 20 модулей используют один о тот самый хук, то вероятность конфликта десятые доли процента, если в OpenCart всего 2 модуля изменяют один и тот же файл то вероятность конфликта десятки процентов, а если они при этом изменяют с помощью vQmod один и тот самый кусок кода.. то вероятность конфликта возрастает наверное процентов до 90%..
Именно этот факт и отпугивает от OpenCart большие магазины, так как разработка большого магазина с большим к-вом функционала превращается в ад. И пока ситуация не изменится OpenCart-у суждено быть простым движком для небольших магазинов, а путь в большой бизнес, сегмент больших магазинов для него будет закрыт.
Радует в этой ситуации то, что создатели OpenCart начали понимать эту проблему и со второй версии в движке появились События (Evets), которые уже предлагают правильный путь изменения движка. Правда, на момент выхода События еще находятся в начальной стадии развития и они еще далеко не покрывают весь движок, как хуки в Drupal, но старт дан и это не может не радовать. Возможно версии до 3 OpenCart полностью избавится от vQmod (OCMOD) в пользу Событий.