Навигация keyboard_arrow_down

Блог Rss rss_feed

Введение в архитектуру PrestaShop: Руководство для начинающих

Введение в архитектуру PrestaShop: Руководство для начинающих

PrestaShop — это мощная и гибкая платформа с открытым исходным кодом для создания интернет-магазинов. Понимание архитектуры PrestaShop помогает лучше разобраться в том, как различные компоненты системы работают вместе, обеспечивая бесперебойную работу магазина. В этой статье мы подробно рассмотрим структуру PrestaShop, уделив внимание как фронтальной части (Front Office, FO), так и административной части (Back Office, BO), а также бэкенд системы.

Обзор

PrestaShop можно разделить на две основные логические секции, как это показано на диаграмме ниже:

Basic overview of PrestaShop 8's architecture

  1. Front Office (FO) — публичная часть сайта, видимая пользователями магазина.
  2. Back Office (BO) — административная панель, где владельцы магазинов управляют всеми аспектами работы.

Каждая из этих секций также делится на две части, как и у большинства веб-приложений:

  • Front-end — то, что работает в браузере пользователя.
  • Back-end — то, что работает на сервере.

Эта схема разделения изображена в виде пунктирной горизонтальной линии на диаграмме.

Бэкенд

Если мы посмотрим на структуру бэкенда, то обнаружим несколько общих компонентов для BO и FO:

  • База данных
  • Бизнес-логика
  • Модули

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

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

Core Business stack

Фиолетовое облако над базой данных представляет собой Core Business — это основной код, который управляет логикой работы PrestaShop. Он включает модели, контроллеры и вспомогательные классы.

Контроллеры PrestaShop в основном выводят HTML-страницы, но иногда могут выводить данные в формате JSON или XML. Структура этих страниц определяется темами (themes), которые преобразуют данные контроллеров в HTML. Темы влияют как на FO, так и на BO, и могут быть заменены на сторонние для FO.

PrestaShop предоставляет два API-интерфейса:

  • BO API — используется для предоставления информации на страницы BO на базе VueJS (например, для управления переводами и складскими запасами).
  • Веб-сервисы — интегрируются с внешними сервисами и могут выводить данные в форматах XML или JSON.

Модули — это независимые пакеты, которые расширяют функциональность PrestaShop, взаимодействуя с ядром через так называемые «hooks» или заменяя стандартные компоненты своими.

Фронтенд

На фронтальной стороне реализация зависит от темы. Одни темы основываются на простом HTML с минимальным количеством скриптов, другие — более сложные и активно используют JavaScript. Темы для FO поддерживают сторонние изменения, тогда как темы для BO более ограничены в изменениях.

Стек Core Business

Код PrestaShop разделен на четыре логических подсистемы:

  1. Legacy-код — старый код, не использующий пространства имен.
  2. Core-код — новый код, основанный на принципах SOLID.
  3. Adapter-код — адаптирует старые классы для работы с новым кодом.
  4. Symfony-код — включает в себя функционал, зависящий от Symfony, такие как формы и контроллеры.

Эта система позволяет PrestaShop постепенно обновлять архитектуру без полного отказа от старого кода, что делает процесс обновления более плавным.

Контроллеры

PrestaShop следует паттерну Model-View-Controller (MVC), где контроллеры обрабатывают запросы и возвращают ответы, делегируя основную работу службам. Контроллеры подразделяются на две категории:

  • FO контроллеры — управляют запросами на стороне FO.
  • BO контроллеры — управляют запросами в BO, причем могут быть как Legacy, так и Symfony-контроллерами.

Core controllers

Темы

PrestaShop поддерживает две основные виды тем: для FO и BO. В FO используется шаблонизатор Smarty, а в BO — Twig, что связано с переходом системы на Symfony. Стандартная тема FO называется «Classic» и основана на Bootstrap 4, в то время как BO использует собственный UI-kit, основанный на Bootstrap 4.

Модули

Модули в PrestaShop играют важную роль в расширении возможностей системы. Они могут добавлять новые функциональности, изменять интерфейсы и интегрироваться с другими сервисами через hooks. Модули могут взаимодействовать с ядром системы, добавлять свои контроллеры, стили, скрипты и даже переопределять классы.

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

Официальная документация >

Был ли этот пост полезен для вас?

    
На данный момент комментариев нет
close

Checkout

close

Избранное