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

ocmod - зло. мнение


 Поделиться

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

считаю, что ocmod это костыль, который упрощает жизнь разработчикам, но усложняет владельцам ИМ.

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

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

со стороны владельца ИМ можно поставить модуль менеджера модификаций и смотреть конфликты

 

44534916_2018-09-0315_08_23.thumb.png.31c5f04a7de3d25336118739aea994aa.png

 

по-хорошему, можно настроить уведомления о конфликтах и отправка логов на почту и тп.

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

Разве про-родитель Vqmod не был тем же злом ? 

А какие есть предложения для внесения изменений в файлы , так что бы при этом не получить на столько уникальный в прямом смысле слова движок, с которым если что то случится, можно просто проститься со всеми денежными вложениями в модули, шаблоны и прочие правки?

На сколько проще отловить проблемный ocmod и внести правки , чем ловить блох в файлах ?
 

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

можно поставить модуль менеджера модификаций

Самое идеальное решение при работе с Ocmod, не понимаю почему его нет из коробки в движке.

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

23 минуты назад, Tom сказал:

А какие есть предложения для внесения изменений в файлы ,

события :)

Но не такое уж это и зло..

 

Мнеджер модифиуаций?
Какие он может определить конфликты? NOT FOUND? или же работа на одну и ту же строку?
after? before? replace?

 

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

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

со стороны владельца ИМ можно поставить модуль менеджера модификаций и смотреть конфликты

 

44534916_2018-09-0315_08_23.thumb.png.31c5f04a7de3d25336118739aea994aa.png

 

по-хорошему, можно настроить уведомления о конфликтах и отправка логов на почту и тп.

ссылку на данный модуль можно?

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


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

считаю, что ocmod это костыль,

я это уже 6  лет говорю..  

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

который упрощает жизнь разработчикам

ем.. гм.. вы это серьезно? ocmod создает кучу конфликтов, которые исправлять как раз таки разработчикам и приходится, потому что есть куча покупателей из разряда "я ничего не знаю и знать не хочу, я заплатил деньги и у меня все должно работать, автор - делай чтобы работало".. и приходится закатывать рукава и искать чей кусок модификатора изменил код, а кроме ocmod у некоторых еще стоит vqmod на двойке + еще куча модулей кеширования, кеширование в теме (какая-то джорнал например) и так далее. 
Ну да, просто офигенное "упрощение"
В то же время на других движках вполне себе отлично работают события, с которыми 99% подобных конфликтов просто отсутствует. 
Да, всех проблем они не решат, но 99% вполне при правильном подходе (но тут мало добавить события в движок, нужно также изменять сам движок под эти события)
Посмотрите напр. на Drupal, как все реализовано там. 

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

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

NOT FOUND

чем не достаточно по NOT FOUND понять что что-то не так?

Но со стороны нескольких модификаций конфликты не поймешь согласен

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

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

В то же время на других движках вполне себе отлично работают события, с которыми 99% подобных конфликтов просто отсутствует. 

ага, ага, глянул я... есть что-то наподобие xml, которое при инстале/анинстале применяется/отменяется, прям в живой код ядра..

Слишком много надежд на события, если надо поменять логику обработку данных

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

4 минуты назад, smartcoder сказал:

чем не достаточно по NOT FOUND

не достатчно
Поточу что этот нотфаунд может быть случайным, а извините "срет" в лог
ну наприре в шаблоны theme/*/template
Все настраивается на дефолт, а на кастомную тему нет.

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

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

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

чем не достаточно по NOT FOUND понять что что-то не так?

Но со стороны нескольких модификаций конфликты не поймешь согласен

Там же есть порядок применения дополнений

сложного ничего в этом нет но времени конечно побольше тратится

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

7 минут назад, freelancer сказал:

вот у меня фильтр например патчит sql запрос в getProducts() . как мне события помогут?

не помогут, до тех пока пока не будет конструктора запросов, т.е. НИКОГДА

 

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

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

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


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

а как там?

Вот тут для старой версии друпала, но довольно понятно написано как работаю хуки (аналог событий в друпале)
https://graker.ru/news/2010/04/13/hooks_api
Сейчас друпал переходит на симфони, с новой версией я не работал, но подозреваю что там используются уже события из симфони
https://symfony.com.ua/doc/current/event_dispatcher.html

 

4 минуты назад, freelancer сказал:

вот у меня фильтр например патчит sql запрос в getProducts() . как мне события помогут?

В данной реализации опенкарта - никак, поэтому я и написал

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

при правильном подходе (но тут мало добавить события в движок, нужно также изменять сам движок под эти события)

Если у нас есть напр. sql запрос размером с пол страницы то вы его никак событиями не измените. 
Но если бы у нас вместо голого SQL был бы даже не ORM, а хотя бы какой-то простейший конструктор запросов и все запросы создавались напр. через 
$query->select(..)->where(..)->order(..)->limit(..);
ну как-то так, то через события перед выполнением этого запроса мы бы могли со своего модуля сделать напр. 
$query->leftJoin(..);
ну или добавить какое-то условие итд. и тем самым бы изменили весь запрос не через изменение код sql запроса, а красиво через события. 
Мало того, в отличии от ocmod, где если всего один модуль изменит подобный запрос, то второй уже тупо не сможет, так как запрос уже изменен и найти его через ocmod не получится.. событиями один и тот же запрос могут изменить несколько модулей одновременно, кто-то добавить новый join, кто-то добавит новое условие или сортировку итд. и все будет работать, конечно конфликты, прежде всего логические, тут тоже возможны, но их будет в десятки раз меньше, чем при ocmod, где больше одного модуля такой запрос вообще изменить не получится. 

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

вот посмотрите как просто работа с базой реализована в codeigniter, куда уже проще! почему чего-то такого нельзя добавить в опенкарт??
https://www.codeigniter.com/userguide3/database/query_builder.html
 

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

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

@sv2109 хуки это события в opencart

да, но как я уже писал выше - система событий не будет полноценно работать если под нее не будет правильно переделан движок. 

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

@sv2109 наличие, даже простого orm уже обсасывалось много раз, но ежики плакали, кололись ..

Кроме того

 

22 минуты назад, sv2109 сказал:

$query->select(..)->where(..)->order(..)->limit(..);

тогда такой хук применяется на всю систему, и нужно знать инициатора, а инициатор - окмод.
 

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

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

тогда такой хук применяется на всю систему, и нужно знать инициатора, а инициатор - окмод.
 

десятки движков отлично работаю через события и знать не знают что такое окмод, но вот только почему-то разработчики опенкарт вбили себе в голову, что без окмод ничего работать не сможет.. 
Нужен инициатор? Без проблем, что мешает каждому запросу присвоить свой идентификатор, напр. 
$query->id = "уникальный идентификатор";
Или что мешает объекту $query присвоить этот идентификатор автоматически из напр. названия класса и метода, что его вызвал?
будет напр.
$query->id = "model_catalog_product_getProduct";
После чего из своего модуля подключиться к событию, которое будет вызываться перед выполнением каждого запроса, напр. query_pre_execute(&$query)
и сделать
if ($query->id == "model_catalog_product_getProduct") {

  // изменяем запрос как нам угодно

}

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

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

4 часа назад, freelancer сказал:

считаю, что ocmod это костыль, который упрощает жизнь разработчикам, но усложняет владельцам ИМ.

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

юзайте event`s

в версии 2.x они правда еще сыроваты. но вот с 3.x уже можно присматриватся. 

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

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

юзайте event`s

В какое место?

Ведь они в модели не дают подменить "ядерный" запрос.
 

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

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

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

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

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

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

Войти

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

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

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

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

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

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