Архитектура PrestaShop

PrestaShop основан на 3-х уровневой архитектуре:

  • Данные. Доступ к базе данных осуществляется с помощью файлов в папке «/classes».
  • Страницы. Файлы находятся в корневой папке сайта. В этих файлах описаны вызовы соответствующех контроллеров..
  • Дизайн. Все файлы темы находятся в папке «/themes».

В PrestaShop не используется фреймворк PHP, такие как, например, Zend Framework, Symfony или CakePHP. Общая архитектура  PrestaShop  основана на принципе MVC — «Модель-представление-контроллер».

architecture_3tiers_ENТакая 3-уровневая архитектура имеет много преимуществ:

  •      Проще читать код.
  •      Проще добавлять и редактировать код.
  •      Дизайнер и верстальщик могут работать только с файлами HTML, CSS темы и им не нужно разбираться в коде PHP файлов.
  •      Можно расширять возможности системы с помощью дополнительных модулей.

 

Модель

Модель в  Prestashop  обеспечивает базовые функции для работы с базой данных : обработка данных, взаимодействия с базами данных и т.д.

Представление, вид

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

Контроллер

Контроллер управляет синхронизацией событий между Моделью и Представлением. Он получает все события пользователя от Представления и запускает функции обработки этих событей. Если для обработки действий пользователя необходимы данные, то Контроллер запросит их у Модели. Если данные были изменены в результате обработки, то Контроллер будет «попросить» Модель измененить данные, а Модель, в свою очередь, будет уведомлять Представление, что данные были изменены, Представление же будет  обновлять себя.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *