Что такое PrestaShop
PrestaShop — бесплатный движок интернет-магазина с открытым кодом, написанный на PHP. Сразу после установки в нём есть каталог товаров, корзина, оформление заказа, покупатели и панель управления. Программист не пишет магазин с нуля, а дополняет готовый.
Курс рассчитан на PrestaShop 8. Отличия версии 9 упомянуты там, где они важны.
Что нужно для работы
| Что | Версия |
|---|---|
| PHP | От 7.2.5 до 8.1 для PrestaShop 8 |
| База данных | MySQL 5.6 и новее или MariaDB |
| Веб-сервер | Apache или Nginx |
| Composer | Понадобится для классов модуля в папке src |
PrestaShop 9 требует PHP 8.1 и новее.
Чем занимается программист
Править файлы самого движка нельзя: при обновлении магазина они заменяются новыми. Весь свой код держат в двух местах.
| Где | Что там делают |
|---|---|
Модуль — папка в modules | Добавляют логику: блоки на страницах, свои страницы, таблицы, настройки |
Тема — папка в themes | Меняют внешний вид: шаблоны, стили, скрипты |
Большая часть курса посвящена модулю, тема разобрана в отдельном уроке.
Что будем строить
Через весь курс проходит один пример — модуль acmehello в папке modules/acmehello. Сначала он выводит приветствие на главной странице, затем превращается в модуль отзывов о товарах:
- блок отзывов на карточке товара;
- страница настроек в панели управления;
- своя таблица в базе данных;
- страница со списком отзывов и формой;
- раздел в панели для управления отзывами.
Каждый урок добавляет в модуль один файл или один метод. Где лежит файл и как увидеть результат, сказано рядом с каждым примером.
Как выглядит код модуля
Самый короткий модуль — это один класс в одном файле:
// modules/acmehello/acmehello.php
class AcmeHello extends Module
{
public function __construct()
{
$this->name = 'acmehello';
$this->version = '1.0.0';
parent::__construct();
$this->displayName = 'Приветствие';
}
}Этого достаточно, чтобы модуль появился в списке модулей в панели управления. Каждая строка разобрана в уроке «Первый модуль».
Где искать ответы
| Источник | Что там |
|---|---|
devdocs.prestashop-project.org | Документация для разработчиков |
Папка modules свежей установки | Десятки стандартных модулей — готовые образцы |
Папка classes | Исходный код классов, которые вызывает модуль |
Читать код стандартных модулей — обычная практика: названия у них начинаются с ps_, например ps_banner.
Частая ошибка
Самый быстрый способ что-то изменить — поправить файл ядра или стандартной темы classic. Это работает до первого обновления, которое вернёт файлы в исходное состояние. Логику добавляйте модулем, а внешний вид меняйте в дочерней теме.