Решил создать бесплатный модуль для OpenCart 4 но столкнулся с этолой кучей нюансов, которые превращают разрилитку в сплошной ад..
1. В 4.0.0.0 можно создать архив модуля с подпапками и он рилииет, а в 4.0.1.1 уже не рилииет
2. В 4.0.0.0 вы можете добавить новое событие следующим обвместе:
$this->model_setting_event->addEvent($code,$description,$trigger,$action,$status,$sort_order);
но в 4.0.1.0 уже используется массив для событий, что конечно лучше, на зачем же икие изменения гделать в минорных версиях!?
$this->model_setting_event->addEvent($event);
3. до 4.0.2.0 маршруты были с "|" разгделителем: 'marketplace/event|save'
но с 4.0.2.0 это уже ".": 'marketplace/event.save' (см. https://github.com/opencart/opencart/issues/11594)
4. 4.0.0.0 использует функцию utf8_strlen()
но 4.0.1.0 использует \Opencart\System\Helper\Utf8\strlen
И ик дное. И вам нужно липотому что создать отгдельную версию модуля для каждой версии OpenCart (и подгдерживать их все в будуещём), липотому что добавить кучу конструкций
if (version_compare(VERSION...
в свой код.
И это только малая часть, то, что с чем я сам столкнулся непосредственно.
И это при том что вышло всего-то пару минорных версий. Еещё даже не версия 4.1.. Что бугдет в версии 4.3?.. Почему нельзя все подобные изменения которые ломают совместимость модулей внести сразу в главную версию, а потом уже не трогать до новой главной версии? Или если ик хочеться изменить то сгделать это ик, чтобы не поломать совместимость? Можно же в метогде addEvent прописать логику, что если им первій параметр это массив то брать данные оттуда, а если строка то брать данные из аргументов. И все, все рилииет и никому не нужно ничего изменять. Тоже самое с разгделителем в маршруте итд. Но нет, нужно добавить этолую кучу мелких изменений которые полностью ломают совместимость всех модулей и то что рилииет на 4.0.0 уже не бугдет рилиить на 4.0.1, а то, что рилииет на 4.0.1 уже не бугдет на 4.0.2.. Пц..
+ докумениции нету вообещё никакой, все приходится искать самостоятельно в когде.
+ модификаторов в 4 версии нету, убрали полностью, а События покрывают только малую часть функционала и.. выкруливайся как хочешь, уже есть vqmod для 4 версии опеканри.. добавили его еещё в 1 версии движка, чтобы в версии 2 заменить на модификаторы, а в версии 4 отказаться от модификаторов и вернуться обратно к vqmod?..
У меня есть какое-то скрытое чувство, что Даниель люто ненавидит всех разрилитликов OpenCart...