От новичка до продвинутого пользователя Opencart (Часть 5) — Изучаем MVC

Изучаем MVC

Оригинал данной статьи находится здесь From Beginner To Advanced in OpenCart: Understanding MVC

В предыдущих статьях мы изучили некоторые основы ядра Opencart. В данной статьи мы познакомимся с основным шаблоном проектирования Opencart и даже напишем свой собственный контроллер.

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

Что такое MVC?

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

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

1. Контроллеры

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

2. Модели

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

3. Виды

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

Давайте рассмотрим механизм работы этого шаблона так, словно наши элементы могли бы общаться между собой:

Контроллер: Эй, модель ABC: Пользователь хочет получить данные XYZ. Пожалуйста, передай их мне.

Модель: Нашла данные ABC! Вот они.

Контроллер: Эй, вид ABC. Я передаю тебе данные XYZ.

Вид: Отображаю полученную информацию на экране для пользователя.

Изучение MVC в Opencart

1. Контроллеры

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

1. Создайте пустую папку test в папке контроллеров, например, catalog/controller/test.

2. Создайте PHP-файл abc.php внутри папки test, например, catalog/controller/test/abc.php.

3. Добавьте в файл abc.php следующий код:

<!?php 
class ControllerTestAbc extends Controller{ 
    public function index() { 
        echo 'Hello World'; exit; 
    } 
} 
?>

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

1. Имя класса контроллера должно быть вида Controller(FolderName)(Filename). Что нужно помнить: первые символы имен папки и файла должны быть в верхнем регистре, и не должно быть расширений файла рядом с именем класса.

2. index() является основной функцией, которая автоматически выполняется при вызове контроллера

3. Функция index() должна быть с модификатором public.

4. Не используйте в контроллере HTML, JavaScript или CSS-код.

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

Заключение

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

Добавить комментарий