Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Что такое "костыли" на Опенкарт


Intermonte
 Поделиться

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

Привет всем! Вот берем мы "чистый" движок и начинаем делать магазин. И хочется сделать так, чтобы все работало хорошо и грамотно. 

 

Что подразумевается под "костылями"? Любую правку контроллера, модуля и т.п. можно считать костылем или как? Правки представления и контроллеров темы магазина?

 

Т.е. как пример - поменяли мы местами блоки. Стандартно через админку этого не сделать. Меняется в шаблоне. Это "костылем" не считать?

 

Если лезем в код - это уже не стандарт. Т.е. либо принимать как есть. Либо делать как хотим. Движок мы этим не затрагиваем, но вот тема теряет возможность обновления. Это "костыли"?

 

"Костылем" можно назвать любое изменение готового продукта или нет? Т.е. есть у нас готовая тема, а мы ее правим. Или есть готовый модуль, мы его правим... и т.д. Подгоняем под себя, под свои нужды. Но это уже получается не тот продукт, который был изначально.

 

Можно через модификаторы, но это тоже как бы "костыли". Но все с ними работают. И любой сторонний модуль работает через модификаторы.

 

Без "костылей" - это по идее только то, что можно сделать через админку, не затрагивая код? Но обычное ТЗ на изменения - ничего сделать нельзя, код нужно править по-любому.

 

Какое ваше мнение?

 

 

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


Только что, Intermonte сказал:

Привет всем! Вот берем мы "чистый" движок и начинаем делать магазин. И хочется сделать так, чтобы все работало хорошо и грамотно. 

 

Что подразумевается под "костылями"? Любую правку контроллера, модуля и т.п. можно считать костылем или как? Правки представления и контроллеров темы магазина?

 

Т.е. как пример - поменяли мы местами блоки. Стандартно через админку этого не сделать. Меняется в шаблоне. Это "костылем" не считать?

 

Если лезем в код - это уже не стандарт. Т.е. либо принимать как есть. Либо делать как хотим. Движок мы этим не затрагиваем, но вот тема теряет возможность обновления. Это "костыли"?

 

"Костылем" можно назвать любое изменение готового продукта или нет? Т.е. есть у нас готовая тема, а мы ее правим. Или есть готовый модуль, мы его правим... и т.д. Подгоняем под себя, под свои нужды. Но это уже получается не тот продукт, который был изначально.

 

Можно через модификаторы, но это тоже как бы "костыли". Но все с ними работают. И любой сторонний модуль работает через модификаторы.

 

Без "костылей" - это по идее только то, что можно сделать через админку, не затрагивая код? Но обычное ТЗ на изменения - ничего сделать нельзя, код нужно править по-любому.

 

Какое ваше мнение?

 

 

 

Смотрите. Правки правкам рознь.
Вот у вас кран на кухне потек, а вы его синей изолентой - это костыль. А если вы заменили или доработали деталь крана - это не костыль.

 

Так же и в opencart. Есть допустим паттерн MVC, в опенкарте он MVC+L

Так вот если вы взяли и поживому всунули во view запрос в базу - это костыль. Если использовали $_GET вместо $this->request->get  - это тоже костыль.


Если взяли любую стороннюю библиотеку и подключили ее через require_once, а потом прямо по коду $myclass= new Myclass(), а не добавили его системными методами в startup.


В чем общая суть. Любые ваши правки должны быть с учетом стандартнов общего паттерна проектирования, чтобы в итоге любому сторонннему разработчику было просто разобраться и понять что где или вам самому через полгода, а также у вас был простой доступ из любого элемента движка к вашим доделкам.

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

Ну а как пример - вот есть задача. И 2 варианта - делаем напрямую в файлах или пишем модификаторы. Что будет "костыльным" решением? 

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


1 минуту назад, Intermonte сказал:

Ну а как пример - вот есть задача. И 2 варианта - делаем напрямую в файлах или пишем модификаторы. Что будет "костыльным" решением? 

 

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

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

Модификаторы создают файл один раз. Т.е. в админке жмется кнопка, "обновить модификаторы". Создается модифицированый файл и в дальнейшем используется он. Это тормозит работу движка?

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


1 час назад, Intermonte сказал:

Меняется в шаблоне. Это "костылем" не считать?

Нет конечно, Это шаблон..

Если вы его не собираетесь обновлять

 

@snastik полноценно описал костыльность

 

 

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

1 час назад, snastik сказал:

 

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

Не соглашусь - если делайте изменения в opencart  - только модификаторами.
Иначе при обновлении как раз вообще все изменения "затрутся"
"Какой" к моНАХам "в живую"
Да и другим разработчикам проще работать с модификаторами чем "с живым" искать где [censored] "кто-то" изменял систему

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

Марк, выдохни. Если под себя. Какой там окмод. Пойди найди в базе в 30 зарисях где что куда затрагивает.

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

8 минут назад, snastik сказал:

Марк, выдохни. Если под себя. Какой там окмод. Пойди найди в базе в 30 зарисях где что куда затрагивает.

Я думаю тебе надо выдохнуть... Выключай и смотри (промолчу про кучу модулей "редактирования" ocmod) . Не забывай про кеш модификаторов еще ;)
А не ищи потом кто и где куда вставил какой то костыль "в живую". (а про обновление версий opencart вообще можно потом "забыть")
Ocmod такой же стандарт де факто совместной разработки как к примеру гит (образно).

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

26 минут назад, Intermonte сказал:

То есть если движок планируется потом обновлять - нужно делать модификаторами? 

Или после обновления снова вносить те же самые правки.

Ведите журнал правок, что-ли.

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


6 минут назад, nikifalex сказал:

 

Нет, надо научиться пользоваться системами контроля версий.

И накатить изменения движка будет очень просто

О! а можно подробней? Это, типа, гит хаб, да?

Я делал правки в 2.1.1.2 (типа)

Потом решил обновиться до 3.1.0.2. (например, если будет когда-то)

Эта система контролю версий мне как-то поможет?

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


Система контроля версий - не панацея

 

Есть патчи и есть ПАТЧИ

 

одни практически ничего не меняют, а только чуть-чть улучшают (например лимит для автокомплит)

 

а другие делают глобальные  изменения, - пример в производителях локализованне имена.

 

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

не путайте праведное с грешным

 

причем здесь " И как тут поможет vqmod, "

 

А не причем

И

При том что все зависит от того как вносить изменения
А если есть еще и зависимости, ведь я показал - стартовые данные

 

А след патч напрямую работает с именем производителя уже на основании того что были изменения в предыдущем.

Что иногда нельзя отключить (откатить) один ocmod, не откатив другой
Ну а че, иогда вон разработчики шаблонов, тупо переписывают под себя контроллеры, без всяких ocmod - вот это КОСТЫЛЬ!

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

14 минут назад, nikifalex сказал:

 

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

вот есть 2.3, обновляйтесь на 2.3.1 на 2.3.2 и т.д. Думаю проблем не будет.

Короче будьте реалистами и не ищите себе проблемы на пустом месте

Здесь много зависит от того, какой именно смысл вкладывать в слово "обновиться". Хорошо, пусть будет "перейти".

Перейти можно? С 1.5 на 2.3, можно? Теоретически, с бубном?

Как это происходит?

 

Я скачиваю мажорную такую версию. Запихиваю в неё свою немажорную старую базу, которой уже три года, по-ходу.

Предположим, звёзды были благосклонны и база стала (порвал два бубна).

Но, я правил файлы движка! ОК, я поднимаю свои амбарные книги и по ним снова правлю свежескаченный авторский код.

...и тут я осмелюсь предположить, что окмод нифига не помог-бы ибо на мажора не стал бы (на то он и мажор).

...система контроля версий как поможет?

 

Где я панапутал?

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


3 часа назад, Intermonte сказал:

То есть если движок планируется потом обновлять - нужно делать модификаторами? 

Да!

2 часа назад, chukcha сказал:

не путайте праведное с грешным

 

причем здесь " И как тут поможет vqmod, "

 

А не причем

И

При том что все зависит от того как вносить изменения
А если есть еще и зависимости, ведь я показал - стартовые данные

 

А след патч напрямую работает с именем производителя уже на основании того что были изменения в предыдущем.

Что иногда нельзя отключить (откатить) один ocmod, не откатив другой
Ну а че, иогда вон разработчики шаблонов, тупо переписывают под себя контроллеры, без всяких ocmod - вот это КОСТЫЛЬ!

I love vqmod - по сравнению с ocmod земля и небо. Даниэль мудак с его окмодом полный!

 

Разработчики которые переписывают исходный код должны гореть в аду!

 

2 часа назад, florapraktik сказал:

Здесь много зависит от того, какой именно смысл вкладывать в слово "обновиться". Хорошо, пусть будет "перейти".

Перейти можно? С 1.5 на 2.3, можно? Теоретически, с бубном?

Как это происходит?

 

Я скачиваю мажорную такую версию. Запихиваю в неё свою немажорную старую базу, которой уже три года, по-ходу.

Предположим, звёзды были благосклонны и база стала (порвал два бубна).

Но, я правил файлы движка! ОК, я поднимаю свои амбарные книги и по ним снова правлю свежескаченный авторский код.

...и тут я осмелюсь предположить, что окмод нифига не помог-бы ибо на мажора не стал бы (на то он и мажор).

...система контроля версий как поможет?

 

Где я панапутал?


обновляться нонстоп - чистой воды паранойя, потому как с постоянными чаяниями даниэля - себе дороже!
Если нет критичных устранений безопасности, что 2.0 что 2.3 - одни яйца, только с разной структурой файлов.

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

2 минуты назад, snastik сказал:

I love vqmod - по сравнению с ocmod земля и небо. Даниэль мудак с его окмодом полный!

 

Иронии не понял. Спишу на субботу

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

5 минут назад, chukcha сказал:

Иронии не понял. Спишу на субботу

 

Да какая ирония.
Окмод - кнопка обновляем нонстоп - не айс!
Редактирование в базе файлов - не айс!
Отсутсвие возможности упорядочить приоритет применения модфикаторов - не айс!

По сравнению с ocmod, методология vqmod - на голову взрослее!

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

5 минут назад, snastik сказал:

Отсутсвие возможности упорядочить приоритет применения модфикаторов - не айс!

Кажется по <code> или по имени файла

vqmod тоже порядок не ахти

Я 100% согласен, что ocmod требует доработки - хотя бы указания порядка применения

 

 

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

18 минут назад, chukcha сказал:

Кажется по <code> или по имени файла

vqmod тоже порядок не ахти

Я 100% согласен, что ocmod требует доработки - хотя бы указания порядка применения

 

 


Для меня очень долго была загадка - почему не внедрили vqmod нативно.
Но был прецедент, люди на стороннем проекте пытались забрать себе технологию но там все упирается в лицензионные права.

Но ocmod - это ДНО, в том виде в котором он есть. Начиная от логов, заканчивая приоритетом выполнения. Про это @rb2 написал у себя в блоге, чуть ли не на следующий день после появления ветки 2.x

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

Да , логт супер информативные, и еще с ошиьками

 

Но то что он не чисти логи, то вообще, и на озвученную проблему просто закрыл ..

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

1 минуту назад, chukcha сказал:

Да , логт супер информативные, и еще с ошиьками

 

Но то что он не чисти логи, то вообще, и на озвученную проблему просто закрыл ..

Даниель - это вещь в себе!
Мы сейчас готовим маленькую "бимбу" которая закрывает одну нативную уязвимость дефолтного движка.
Ему писали про нее в тикетах. Парень сказал - это не баг это фича.
По факту @Yoda на следующей неделе опубликует подробности. Но это "со дна постучали".

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

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

Отправлено с моего m2 через Tapatalk

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


 
С тем же успехом два ocMod будут точно так же конфликтовать, только еще жесче

Это уже второй вопрос, но ядро движка нельзя менять.
Ссылка на комментарий
Поделиться на других сайтах


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

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

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

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

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

Войти

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

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

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

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

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