От автора: в предыдущей статье мы рассмотрели основные принципы построения приложений OpenCart. Сегодня мы продолжим рассмотрение шаблона проектирования, используемого OpenCart MVC, и даже напишем собственный контроллер. Прежде чем изучать архитектуру кода в OpenCart, мы сначала рассмотрим архитектуру Модель-Представление-Контроллер (MVC).
Что такое MVC?
Архитектура MVC широко используется в современном веб-программировании. Многие из популярных фреймворков используют MVC; однако это не приложение, это шаблон проектирования — предписанное решение общей проблемы, организованное в коде. Данный шаблон проектирования также известен, как архитектурный шаблон. MVC можно рассматривать как архитектуру на основе уровней. То есть контроллер, модель и представление представляют собой три уровня, каждый из которых связан с другими.
Контроллеры
Контроллеры осуществляют управление программой. Контроллер отвечает за поток программы. В MVC веб-приложениях это также первый уровень, который вызывается, когда браузер обращается к URL-адресу.
Модели
Модели содержат основные данные программы, такие как информация из объектов базы данных и SQL-запросов. Все данные получаются из моделей; однако модели нельзя вызвать напрямую — контроллер запрашивает в модели конкретные данные, а модель выполняет запрос и возвращает данные на этот контроллер.
Представления
Представление — это последний уровень архитектуры MVC, который содержит пользовательский интерфейс программы. В веб-приложениях представление содержит коды HTML, CSS, JavaScript, XML или JSON и т. д. Представление является видимым для пользователя уровнем, тогда как модели и контроллеры скрыты от пользователя. Давайте смоделируем в виде беседы ситуацию, когда пользователь переходит по определенному URL-адресу:
Контроллер: Эй, модель ABC: пользователю нужны данные XYZ, пожалуйста, передайте их мне.
Модель: Держи данные XYZ! Вот.
Контроллер: Эй, представление ABC, я передаю тебе данные XYZ.
Представление: Отображает информацию на странице для просмотра пользователем.
MVC в OpenCart
Контроллеры. Как было сказано, контроллер является первым уровнем архитектуры MVC. Итак, давайте рассмотрим это в контексте нашего сайта. Мы создадим новый контроллер, чтобы вы лучше поняли этот предмет. Создайте пустую папку test в каталоге контроллеров, т.е. catalog/controller/test.
Создайте PHP-файл abc.php в папке test, то есть catalog/controller/test/abc.php. Измените файл 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, которым программист должен следовать неуклонно.
Имя класса контроллера должно быть следующим — Controller(ИмяПапки)(ИмяФайла). Помните: первая буква, относящаяся к имени папки и имени файла должна быть в верхнем регистре, в имя класса не включается расширение файла.
index() — это основная функция, которая выполняется автоматически при вызове контроллера
Функция index() должна быть публичной.
Не используйте в контроллере HTML-, JavaScript- или CSS-код.
Теперь в браузере откройте URL-адрес: //localhost/Opencart/index.php?route=test/abc
Заключение
Бинго! Вы создали свой первый контроллер. Контроллер — это первый и самый важный уровень MVC, поскольку MVC может существовать без модели и представления, но без контроллера — нет. В нашей следующей статье мы будем создавать модели и представления, а также рассмотрим параметр маршрута относительно контроллера. Надеюсь, вам понравилась эта статья. Всего наилучшего!
Автор: Zaman Riaz
Источник: //code.tutsplus.com/
Редакция: Команда webformyself.