Услуги Создание магазина Доработка Интеграция 1С О компании FAQ Блог Кейсы Отзывы Контакты
А
Автор статьи

Как устроена архитектура OpenCart для начинающего разработчика

Краткое описание задачи

OpenCart использует архитектуру MVC-L — модификацию MVC, где буква L означает Language (язык). Разберём, как работает эта архитектура и как найти нужный файл.

Из практики: за 15 лет работы с OpenCart я накопил много полезных наблюдений. В этой статье делюсь самым важным.

Model (Модель)

Отвечает за работу с базой данных. Все SQL-запросы должны быть здесь. Файлы в /catalog/model/ и /admin/model/. Имя файла соответствует имени класса: model_catalog_product.

View (Представление)

Шаблоны, которые отвечают за HTML. В OpenCart 3 — .tpl, в OpenCart 4 — .twig. Файлы лежат в /catalog/view/theme/.

Controller (Контроллер)

Логика обработки запроса. Контроллер получает данные из модели, передаёт их в шаблон. Пример маршрута: route=product/product — это файл catalog/controller/product/product.php.

Language (Язык)

Текстовые строки, переведённые на разные языки. Каждый контроллер имеет соответствующий языковой файл.

Как найти нужный файл

Если URL содержит route=product/product, файл лежит в catalog/controller/product/product.php. Шаблон — в catalog/view/theme/default/template/product/product.twig. Зная route, вы легко найдёте любой файл.

Рекомендации из практики

Как лучше: Начните с понимания маршрутизации (route). Как только поймёте, что route=product/product ведёт к catalog/controller/product/product.php — архитектура OpenCart перестанет быть «чёрным ящиком». Дальше всё выстраивается вокруг этого принципа: любой запрос → контроллер → модель → шаблон.

Как не делать: Не пытайтесь выучить всю структуру папок сразу. OpenCart использует симметричную структуру для админки и витрины — они почти идентичны. Достаточно запомнить: контроллеры обрабатывают запросы, модели работают с БД, шаблоны отвечают за отображение.

Кейс из практики: К нам пришёл разработчик, который три месяца не мог разобраться с кастомизацией OpenCart. Он искал файлы по названиям в админке, а не по route. Объяснили ему принцип маршрутизации — за час он нашёл и поправил нужный контроллер. Архитектура OpenCart несложная, если знать точку входа.

Нужен разбор архитектуры OpenCart под вашу задачу — закажите доработку: спроектируем решение с учётом структуры CMS.

FAQ

Почему нужно разделять логику?

Чтобы не дублировать код. Одна модель может вызываться из разных контроллеров — без MVC пришлось бы писать одни и те же SQL-запросы в каждом контроллере.

Чем отличается структура админки и витрины?

Ничем — они зеркальны. Админка хранится в admin/controller/, витрина — в catalog/controller/. Модели и шаблоны — по тому же принципу. По практике, поняв структуру витрины, вы автоматически понимаете админку.

Итог

MVC-L = Model (БД) + View (HTML) + Controller (логика) + Language (текст). Зная URL-route, вы найдёте любой файл.

← Предыдущая Проверка OpenCart перед передачей подрядчику: чек-лист Следующая → Как создать простой модуль для OpenCart

Комментарии (0)

Пока нет комментариев. Будьте первым!

Оставить комментарий

Ваш комментарий появится после проверки модератором.