Папки проекта
В корне установленного магазина около двух десятков папок. Запоминать все не нужно: свой код вы пишете в двух из них, ещё несколько полезно знать, чтобы находить журналы, кеш и исходники классов.
Корень магазина
shop/
├── admin437xyz/ панель управления
├── app/ настройки Symfony, parameters.php
├── bin/ консоль: bin/console
├── classes/ классы старого ядра: Product, Cart, Order
├── config/ константы и настройки, defines.inc.php
├── controllers/ контроллеры старого ядра
├── img/ картинки товаров и категорий
├── mails/ шаблоны писем
├── modules/ модули — здесь ваш код
├── override/ переопределения классов ядра
├── src/ новое ядро на Symfony
├── themes/ темы оформления
├── translations/ переводы
├── upload/ файлы, загруженные покупателями
├── var/ кеш и журналы
├── vendor/ библиотеки Composer
└── webservice/ точка входа веб-сервисаГде ваш код
| Папка | Что вы там делаете |
|---|---|
modules/acmehello | Пишете модуль |
themes/acme | Делаете дочернюю тему |
Всё остальное принадлежит движку. Файлы в classes, controllers, src и в теме classic читать можно и нужно, править — нельзя.
Где искать исходники
Когда модуль вызывает Product::getPriceStatic() или Configuration::get(), полезно открыть сам класс и посмотреть аргументы.
| Что ищете | Где лежит |
|---|---|
Классы Product, Cart, Customer | classes/Product.php и соседние файлы |
Класс Module | classes/module/Module.php |
| Страница товара на витрине | controllers/front/ProductController.php |
| Шаблон страницы товара | themes/classic/templates/catalog/product.tpl |
| Страницы панели на Symfony | src/PrestaShopBundle/Controller/Admin |
Журналы и кеш
| Путь | Что там |
|---|---|
var/logs | Журналы ошибок |
var/cache/dev | Кеш в режиме отладки |
var/cache/prod | Кеш в обычном режиме |
Если страница отдаёт ошибку 500 и на экране ничего нет, первым делом смотрят последние строки файла в var/logs.
Кеш очищают командой из корня магазина:
php bin/console cache:clearКоманда удаляет кеш Symfony текущего окружения и печатает сообщение об успехе. Кнопка «Очистить кеш» на странице «Расширенные параметры → Производительность» дополнительно сбрасывает собранные шаблоны Smarty.
Консоль
Файл bin/console — та же консоль Symfony, что в обычных проектах на этом фреймворке. Команды самого магазина показывает такой вызов:
php bin/console list prestashopВ списке есть команды для установки модулей, они понадобятся в следующих уроках.
Частая ошибка
Команду php bin/console запускают из папки модуля и получают «Could not open input file». Путь bin/console считается от корня магазина. Перейдите в корень или укажите полный путь: php /var/www/shop/bin/console.