От новичка до продвинутого пользователя Opencart (Часть 4) — Архитектура

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

Архитектура

Вплоть до настоящего момента все наши предыдущие статьи были сфокусированы на изучении пользовательского интерфейса Opencart. В этих статьях мы говорили в основном о том, как использовать Панель администратора. Начиная с данной статьи, мы будем разбираться в устройстве фреймворка Opencart, который основывается на шаблоне проектирования MVC.

Если вы уже знакомы с MVC (Model-View-Controller), то вы полностью готовы для восприятия данной статьи. В противном случае, не волнуйтесь о том, что вы возможно чего-то не понимаете или не знаете о MVC. Мы поговорим об этом шаблоне более детально в следующих статьях.

Параметры маршрутизации URL

Фреймворк Opencart является достаточно легким, поскольку он был спроектирован для того, чтобы с ним могли работать даже начинающие разработчики. Opencart следует легким и простым URL-маршрутам (роутам, routes), вроде этого: route=aa/bb.

Строка запроса «route» состоит по меньшей мере из двух частей, которые дают инструкции фрейворку о том, что загружать.

Например, в вышеуказанном примере я использовал aa в качестве первой части и bb в качестве второй части. В свою очередь, архитектура MVC работает следующим образом.

Во-первых, загружается контроллер. В таком случае данный контроллер идентифицируется по первому и второму параметрам в строке запроса. Первая часть строки запроса идентифицирует папку, вторая часть строки запроса указывает на имя файла контроллера (хотя без соответствующего расширения файла PHP).

Так что эта строка запроса соответствует файлу, как указано ниже:

(STORE ROOT DIRECTORY)/catalog/controller/aa/bb.php

Замечание: Параметр маршрутизации может содержать третью часть, например, route=aa/bb/cc. Третья часть будет обсуждаться в будущих статьях, когда мы будем рассматривать контроллеры.

Библиотеки

Библиотеки играют очень важную роль в Opencart. Обычно библиотеки являются вспомогательными файлами, которые также являются наиболее часто используемыми, когда вы что-то разрабатываете для данной системы. Opencart имеет предустановленные библиотеки, которые могут быть очень полезными, когда вы пишите свой код. Основной синтаксис загрузки библиотеки выглядит примерно так: $this→library_name. Библиотеки могут быть найдены в папке system/library.

Например, для того, чтобы осуществить вход пользователя в систему, вы можете использовать $this→user→login($username, $password); а для того, чтобы выйти из системы, вы можете использовать $this→user→logout().

Некоторые из наиболее часто используемых библиотек:

cart.php содержит связанные с корзиной пользователя функции;

image.php содержит функции для обработки изображений, такие как обрезка изображений, кеширование и прочие;

customer.php включает в себя связанные с пользователем функции;

config.php ответственен за загрузку всех настроек Opencart;

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

Языковые настройки

Языковые настройки могут быть расположены в папке catalog/language. В ранних статьях мы добавили на наш сайт французский язык, так что внутри данной папки будут папки english и french. Для более ясного понимания этого, мы взглянем на то, что же содержится в папке english.

Значения, которые используются на многих страниц нашего сайта, сохранены в файле english.php. Если вы хотите добавить новое значение, то просто следуйте этому синтаксису:

$_['language_key']='This is test';.

Однако языковые настройки основаны на специальных страницах, которые расположены внутри папок для языковых настроек. Например, для страницы отображения ошибки языковой файл может быть найден в: catalog/language/english/error/not_found.php.

Языковой файл может быть загружен в контроллер с использованием следующей строки:$this→language→load(‘error/not_found’).

Затем вы можете использовать библиотечную функцию «get» для получения значения для языка: $this->language->get(„language_key»).

Заметка: Значения из глобального языкового файла english/english.php автоматически загружаются и доступны без использования метода $this→language→load.

Заключение

В данной статье мы описали базовую архитектуру системы Opencart. Но это еще не все. Есть еще некоторые вещи, которые мы будет рассматривать в следующих двух статьях.

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