Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Папки проекта

В корне установленного магазина около двух десятков папок. Запоминать все не нужно: свой код вы пишете в двух из них, ещё несколько полезно знать, чтобы находить журналы, кеш и исходники классов.

Корень магазина

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, Customerclasses/Product.php и соседние файлы
Класс Moduleclasses/module/Module.php
Страница товара на витринеcontrollers/front/ProductController.php
Шаблон страницы товараthemes/classic/templates/catalog/product.tpl
Страницы панели на Symfonysrc/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.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.