Статьи

От новичка до продвинутого в OpenCart: Понимание MVC

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

Прежде чем разбираться в архитектуре кода в OpenCart, сначала рассмотрим архитектуру Model-View-Controller (MVC).

В современном веб-программировании широко используется архитектура MVC. Многие из самых популярных фреймворков используют MVC; однако, это не приложение, это шаблон проектирования — предписанное решение общей проблемы, организованной в коде.

Точно так же, это также известно как архитектурный образец. MVC можно рассматривать как архитектуру на уровне слоев. То есть контроллер, модель и представление — это три уровня, каждый из которых связан друг с другом.

Контроллеры держат основной контроль над программой. Контроллер отвечает за выполнение программы. В веб-приложениях MVC это также первый уровень, который вызывается, когда браузер нажимает на URL.

Модели содержат основные данные программы, такие как информация из объектов базы данных и запросы SQL. Все данные получены из моделей; однако модели нельзя вызывать напрямую — это контроллер, который запрашивает модель для конкретных данных, а модель выполняет запрос и возвращает данные этому контроллеру.

Представление является последним уровнем архитектуры MVC, который содержит пользовательский интерфейс программы. В веб-приложениях представление содержит HTML, CSS, JavaScript, XML или JSON и т. Д. Представление является видимым слоем для пользователя, тогда как модели и контроллеры скрыты от пользователя.

Давайте разберемся с помощью формы разговора, когда пользователь нажимает на URL:

  • Контроллер: Эй, модель ABC: пользователю нужны данные XYZ, передайте их мне.
  • Модель: Получил данные XYZ! Вот.
  • Контролер: Эй, ABC View, я передаю данные XYZ вам.
  • Просмотр: отображает информацию на странице для просмотра пользователем.

Как обсуждалось выше, контроллер — это первый уровень архитектуры MVC. Итак, давайте посмотрим на это в контексте нашего сайта. Мы собираемся создать новый контроллер, чтобы помочь нам лучше понять.

  1. Создайте пустой каталог test каталоге контроллеров, то есть catalog/controller/test .
  2. Создайте PHP-файл abc.php внутри test директории, т.е. catalog/controller/test/abc.php .
  3. Отредактируйте abc.php в вашей IDE и добавьте следующий код:
1
2
3
4
5
6
7
8
9
<?php
class ControllerTestAbc extends Controller{
     public function index()
     {
          echo ‘Hello World’;
          exit;
     }
}
?>

В приведенном выше примере есть некоторые ограничения OpenCart Framework, которым должен строго следовать программист.

  1. Для имени класса контроллера это должно быть подобно Controller(FolderName)(Filename) . Вещи, чтобы помнить: первый случай имени папки и имени файла должен быть в верхнем регистре, и не включать расширение файла как имя класса.
  2. index() — это основная функция, которая выполняется автоматически при вызове контроллера.
  3. Функция index() должна быть публичной.
  4. Не используйте HTML, JavaScript или CSS в контроллере

Теперь перейдите в ваш браузер и введите URL: http://localhost/Opencart/index.php?route=test/abc

Бинго! Вы сделали свой первый контроллер. Разве это не легко? Это достаточно справедливо для этого урока, так как мы создали наш первый контроллер! Контроллер — это первый и самый важный уровень MVC, поскольку MVC может существовать без модели и представления, но не без контроллера.

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