Перейти к содержанию

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

Добрый день всем форумчанам. Хочу задать вопрос о разнице в структуре файлов в OpenCart разработчикам модулей или просто понимающим чувакам.

Вот пилю свой модуль sobFeedback, ну запилил, OpenCart 2.0-2.2 все ок, и тут на те, вышел 2.3 и сломал логику. Не могу понять чем руководствовались разработчики опенкарта.. Вместо того чтобы упростить структуру модулей  (сбросить все файлы модуля в одну папку допустим, а там уже разбить на фронтенд и бекенд) - они еще больше углубили дерево каталогов(

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

    Ну вот собственно сам вопрос - Как бороться с этим? может кто знает какие то фичи с использованием которых не пришлось бы разрабатывать два абсолютно разных приложения с разной структурой каталогов и путями вызова методов под 2.0-2.2 и 2.3.

Всем спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
19 минут назад, sobwoofer сказал:

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

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

 

21 минуту назад, sobwoofer сказал:

может кто знает какие то фичи

Некоторые разработчики делают свои "фреймворки" максимально абстрагируясь от ОК. В нормальных условиях я бы сказал, что это однозначно плохая идея, но в случае ОК с его стабильностью (её отсутствием) всё не так однозначно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
26 минут назад, Dotrox сказал:

А секрет в том, что ничем не руководствуются

Опять за рыбу гроши

Уже с тобой обсуждали - унификация - никаких экспериментов.

 

Я более возмущен  currency->format

Да, увы.. есть проблема..


Зачем лепить фреймворки?
Можно на порядок упростить..

 

Нужно написать универсальный контроллер

А затем в него передавать нужные пути и инициализировать нужные классы.

 

зы.. все время об этом сам забываю

 

 

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, chukcha сказал:

Уже с тобой обсуждали - унификация - никаких экспериментов.

Это уже результат. Но процесс прихода к этому результату был довольно хаотичным. Когда зарелизился 2.0 у меня вообще было ощущение, что на ОК можно ставить крест.

 

 

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

Нужно написать универсальный контроллер

А затем в него передавать нужные пути и инициализировать нужные классы.

Вот так и начинаются "фреймворки" :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Dotrox сказал:

Вот так и начинаются "фреймворки"

Это ООП, уважаемый

Поделиться сообщением


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

Я как-то давно создавал тему, но тем немножко не то)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 часов назад, chukcha сказал:

Нужно написать универсальный контроллер

А затем в него передавать нужные пути и инициализировать нужные классы.

зы.. все время об этом сам забываю

 

Да а это идея кстати, файлы конечно будут лежать на своих старых местах как и в 2.1,  не очень красиво но думаю можно потерпеть иначе выход только лепить файлы в глубину директорий для 2.3. Тем более не известно что нас ждет в 2.4. там еще поменялись названия ленгвич папок на типа ru-ru? или я ошибаюсь?

блин это же кошмар будет. Я уже и так вижу в людей половину модулей в catalog/module а половину в catalog/extension/module.

Мб, будет настроение на досуге - сяду набросаю какойто общий клас для етой всей кухни. Если у кого есть варианты или предложения, пишите не стесняйтесь) 

 

Поделиться сообщением


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

за подобные "эксперименты" я бы Даниелу руки поломал, это же как нужно не любить разработчиков, чтобы каждая новая минорная! версия была не совместима с предыдущей и все модули приходилось переделывать? потому что в каждой новой версии новые "эксперименты".. 

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

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 часов назад, sobwoofer сказал:

Тем более не известно что нас ждет в 2.4

Ничего, как и сама версия нас не ждёт. Следующей версией будет тройка. А что нас там ждёт можно посмотреть в соответствующей ветке на Гитхабе. Там, кстати, уже первая альфа.

 

12 часов назад, sobwoofer сказал:

там еще поменялись названия ленгвич папок на типа ru-ru? или я ошибаюсь?

Вы отстали от жизни - это уже в 2.2 есть.

Поделиться сообщением


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

Но с названиями языковых папок  это как бы логично - унификация.

 

А вот с путями к флагу - перебор.

 

Причем совсем не соответствующий концепции

 

language/CODE

 

Хотя в конфиге путь к корню языковых папок можно переназначить (ну, я еще не встречал, но всякое может быть)

 

Поделиться сообщением


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

В 2.1 в папке system есть папка vendor с которой парсяться класы опенкартовским автолоадером, думал занести все туда дабы избавить себя от подобных перетасиваний, но в 2.3 эта папка уже на два уровня выше, тоесть в не корня магазина) и автолоадер продолжает загружать все с той папки. Кстати приятно удивили, в вендоре версии 2.3 есть намеки на композер, и все его плюшки, к тому же ребята из опенкарт похоже понимают что такое юнит тесты, силениум и прочее.. хотя в вендоре также есть зависимость на PSR но если они и стали понимать что это такое, то явно не  до версии 2.3 включительно.

Вобщем версия 2.3 оказывается нормально жрет все класы по которые лежат по старым директориям, но при инстале пришлось сделать костыль. выкладываю в спойлере:

Скрытый текст

if (VERSION >= '2.3'){
            if(isset($this->request->get['extension']) && isset($this->request->get['route'])){
                $routes = explode('/', $this->request->get['route']);
                if(in_array('install', $routes) && $this->request->get['extension'] == 'sobfeedback'){
                    $this->install();
                }
            }
        }

 

это в методе индекс контроллер файла, где запускался в версиях ранее метод install при установке.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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