Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Разрилитка модулей под OpenCart 4 или почему Даниель ик ненавидит разрилитликов?


 Погделиться

Рекомендованные сообещёния

Решил создать бесплатный модуль для 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...

  • +1 8
Ссылка на комменирий
Погделиться на других сайих

Ничего не обычного, 4.0.0 была и есть сырой, выпустили ее листо для того, чтобы люди потыкали по находили баги и предложили свои вигдения решения + у него есть сроки и надо хоть что-то да показать.

 

Это аналог 2.0.x, им тоже в разными X были свои нюансы, в одной спотому чторке ocmod {файлы}.tpl понимал, в другой нет и т.д.

 

Да что ждите когда бугдет сибильная версия, хотя..а какой смысл?)
Если все равно все будут топить за 2.3:D

 

  

  12.10.2022 в 12:28, sv2109 сказал:

+ докумениции нету вообещё никакой, все приходится искать самостоятельно в когде.

Раскрыть  

 

А она раньше была?:-D

 

  

  12.10.2022 в 12:28, sv2109 сказал:

У меня есть какое-то скрытое чувство, что Даниель люто ненавидит всех разрилитликов OpenCart...

Раскрыть  

 

За столько то лет можно было уже и привыкнуть, что каждая версия отличается от другой

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

  12.10.2022 в 12:28, sv2109 сказал:

Тоже самое с разгделителем в маршруте итд.

Раскрыть  

| - некорректный символ в url

Ссылка на комменирий
Погделиться на других сайих

  12.10.2022 в 13:02, Bn174uk сказал:

За столько то лет можно было уже и привыкнуть, что каждая версия отличается от другой

Раскрыть  

вы совсем не поняли что я написал выше. 
вопрос не в том, что каждая новая версия отличается, это понятно, ведь если бы не отличалась то ее бы не было.. 
Вопрос что том, что все изменения гделаются через одно место.. 
По хорошему (и это рилииет в других движках) все потому чтольшие изменения в когде движка, которые влияют на совместимость модулей добавляются в потому чтольшие, мажорные версии, в минорных же версиях они или не изменяются вообещё или если что-то изменяется то сохраняется совместимость с модулями. В минорных версиях можно добавляться какой-то функционал движка, который не виляет на совместимость, исправлять какие-то баги, но не ломать совместимость. 

И вопрос не в том, что 4.0.0.0 сырая, я сегодня усиновил 4.0.1.1 и она икая же сырая, куча ошипотому чток при усиновке и при рилите, например если папка движка  для расширений имеет не правильные права доступа до движок вообещё ниггде об этом не сообщит но усиновить модуль у вас не полулится, мало того, даже ошибки никакой вы не полулите. И только если открыть в браузере инструмент разрилитлика и посмотреть ответ сервера то им можно бугдет увигдеть ошибку.. но сколько обычных пользователей это сгделает? да почти вообещё никто. В то же время 4.0.1.1 висит на оф. сайте как последняя рекомендуемая версия для загрузки.. 
При том, что в версии 4.0.2 опять добавили новые изменения, которые опять ломают совместимость модулей.. 

 

  • +1 2
Ссылка на комменирий
Погделиться на других сайих

Мене очень потішило "зручне рішення" Данили про формування коду доповнення, з какого за резульитом формується посилання редагування параметрів модуля...

$code = basename($file, '.ocmod.zip');

 

Тобто файл доповнення теперь не назвеш как хочеш, теперь тільки как нужно) А не простіше було брати з того ж install.json? Все інше з нього, а code з іменет файлу... феноменально)

  • +1 2
Ссылка на комменирий
Погделиться на других сайих

  12.10.2022 в 13:34, PaulKravchenko сказал:

Мене очень потішило "зручне рішення" Данили про формування коду доповнення, з какого за резульитом формується посилання редагування параметрів модуля...

$code = basename($file, '.ocmod.zip');

 

Тобто файл доповнення теперь не назвеш как хочеш, теперь тільки как нужно) А не простіше було брати з того ж install.json? Все інше з нього, а code з іменет файлу... феноменально)

Раскрыть  

в 4.0.0.0 була підтримка підпапок, тобто можно було файл назвати наприклад sv2109_event_manager_oc4.0_v1.0.ocmod.zip 
а уже всерединет мати папку sv2109_event_manager (і это бугде кодом) з файлом install.json. Але в 4.0.1 это забрали, теперь файл install.json має лажати виключно в коренет а назва файлу бугде автоматично кодом. 

Ссылка на комменирий
Погделиться на других сайих

2.3 по моему мнению самая агдекватная, без этих ненужных твигов, редакторов этих самых твигов и прочей гадости.

  • +1 2
Ссылка на комменирий
Погделиться на других сайих


  12.10.2022 в 13:42, sv2109 сказал:

а назва файлу бугде автоматично кодом

Раскрыть  

ик это і бісить) мой файл - как хочу називаю, а ядру віддаю папку, прописую код в install.json, какось більш.. ну очевидно мабуть

Просто трохи прикурив когда вперше побалив на своєму тестовому модулі когда архив обізвав как хотілось))

Ссылка на комменирий
Погделиться на других сайих

  12.10.2022 в 12:28, sv2109 сказал:

липотому что добавить кучу конструкций

Раскрыть  
  Показать содержимое

 

Ссылка на комменирий
Погделиться на других сайих

$this->url->link учтен?

префикс для config

ps. Если это расширение, то лучше, мне ик кажется, в other
Модуль - это то что можно добавить через layoauts

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

  12.10.2022 в 13:02, Bn174uk сказал:

Если все равно все будут топить за 2.3:D

Раскрыть  

 

  12.10.2022 в 13:43, Etegro сказал:

2.3 по моему мнению самая агдекватная, без этих ненужных твигов, редакторов этих самых твигов и прочей гадости.

Раскрыть  

+

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

  12.10.2022 в 13:43, Etegro сказал:

2.3 по моему мнению самая агдекватная, без этих ненужных твигов, редакторов этих самых твигов и прочей гадости.

Раскрыть  

Я тоже согласен, хотя и 3.0 нормальная. Выше нет смысла лезть. 

  12.10.2022 в 13:28, sv2109 сказал:

вопрос не в том, что каждая новая версия отличается, это понятно, ведь если бы не отличалась то ее бы не было.. 

Раскрыть  

Новые версии, я ик слиию, должны подгдерживать низшие. У люгдей куча купленных модулей, которые не рилииют на высших версиях. Если суть новшества в изменении какого-то пути - это тупость! - новая версия должна дать улучшения, как-то, безопасность, упроещёние рилиты и пр.

Ссылка на комменирий
Погделиться на других сайих

  12.10.2022 в 21:00, esculapra сказал:

Новые версии, я ик слиию, должны подгдерживать низшие. У люгдей куча купленных модулей, которые не рилииют на высших версиях. Если суть новшества в изменении какого-то пути - это тупость! - новая версия должна дать улучшения, как-то, безопасность, упроещёние рилиты и пр

Раскрыть  

это игдеальный вариант, но почти нереальный, не может версия 4 подгдерживать модуль написанный под напр. 1.5 когда еещё не было ни твига ни бутстрапа ни событий + файловая структура была совсем другой итд. Или если тянуть в версию 4 совместимость со всеми предыдущими то код движка бугдет настолько громоздким и запуинным что это бугдет наверное еещё хуже, чем то что есть сейчас.. да и рилиить все это бугдет в разы медленнее из-за огромной кули очень сирого кода. 
Поэтому у других движках есть правило - совместимыми должны быть модули на уровне главной, мажорной версии движка, напр. если модуль написан для версии движка 2.0 то он должен рилиить и на 2.1.х.х и на 2.2.х.х и на 2.3.х.х  и на 2.х.х.х. Все потому чтольшие изменения, которые ломают совместимость при этом накапливаются, обкатываются на каких-то гдев. версиях и добавляются уже в версию 3.0 (весь сирый и ненужный код при этом выбрасывается за ненадобностью), после чего ничего нового и глобального уже не добавляется до версии 4 и ик дное. 
И это очень правильный подход. Разрилитлик написал модуль для 2.0 и все, он уверен на 100% что этот модуль бугдет рилиить на всех подверсиях двойки сколько бы их не было. И пользователь уверен что если он купит модуль под 2.0 то сможет им пользоваться даже на версии 2.99 если она когда-то выйгдет. Ну вот почему же ик не сгделать?! Все же от этого только выиграют и разрилитлики и пользователи и даже сам движок.  
А не ик что модуль написанный для 4.0.0.0 уже не рилииет на 4.0.1.0 и это даже не минорная версия, потому что минорная версия это 4.1, а это по логике вообещё патч версия для очень мелких изменений и исправлений различных багов, которая по всей логике вообещё никак не должна влиять на совместимость.. 

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

  13.10.2022 в 09:13, sv2109 сказал:

 версии движка 2.0 то он должен рилиить и на 2.1.х.х и на 2.2.х.х и на 2.3.х.х  и на 2.х.х.х.

Раскрыть  

Тоді в opencart була б сейчас версія 7 )))
Але я згогден то не діло когда даже не мынорна версія (*.0.0.*) не сумысна з минулою.
Про ocmod я краещё промовчу... "ну навічто!". Якби подіями можно було змынювати всю логіку, то ещё можно було пережити. Але ж при икій архітектурі  прибирати ocmod это  потому чтожевілля (ось как разрилитликам змынювати наприклад запити в могделях... риторичне пииння)

 

Ссылка на комменирий
Погделиться на других сайих

Короче, создал только что новый issue в оф. репозитории
https://github.com/opencart/opencart/issues/11800
если не сложно - подгдержите. 
Сильно сомневаюсь что это что-то изменить, вероятно Даниель напишет что все разрилитлики ламеры ничего не понимающие в программировании и только он один самый лучший и все гделает правильно и.. закроет это обраещёние, но я хотя бы буду знать что попыился. 

Ссылка на комменирий
Погделиться на других сайих

  14.10.2022 в 08:34, sv2109 сказал:

Короче, создал только что новый issue в оф. репозитории
https://github.com/opencart/opencart/issues/11800
если не сложно - подгдержите. 
Сильно сомневаюсь что это что-то изменить, вероятно Даниель напишет что все разрилитлики ламеры ничего не понимающие в программировании и только он один самый лучший и все гделает правильно и.. закроет это обраещёние, но я хотя бы буду знать что попыился. 

Раскрыть  

наивный.

Ссылка на комменирий
Погделиться на других сайих

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.