Инструменты разработчика PrestaShop
PrestaShop прилагает все усилия, чтобы разработчикам было проще создавать чистые и рабочие темы, модули и переопределять классы. Это делается с помощью набора инструментов разработчика, которые вы можете включить, когда вам это нужно.
По умолчанию PrestaShop отключает отчет об ошибках, в этом случае, если ваш код не работает, вы увидите пустую страницу без какой-либо информации. Это связано с тем, что клиенты не должны ничего видеть на вашем сервере. Вы можете получить много информации, используя следующие инструменты.
Большинство этих инструментов должны быть включены только в процессе разработки, при локальной установке. Если вы должны включить их в работающем магазине, вы должны сначала отключить магазин, чтобы только вы могли видеть результаты своих тестов.
Режим разработчика
Режим разработчика PrestaShop позволяет использовать ряд инструментов, помогающих разработчикам:
- Установка PHP’s
display_errors
в «on»: ошибки отображаются в браузере вместо пустых страниц.. - Установка PrestaShop’s
_PS_DEBUG_SQL_
константы в «true»: PrestaShop отображает потенциальные проблемы в ваших SQL-запросах. - Установка PrestaShop’s
_PS_DISPLAY_COMPATIBILITY_WARNING_
константы в «true»: PrestaShop отображает предупреждение, если часть кода, который вы используете, устарела в текущей версии.
В общем, этот режим отображает намного больше сообщений об ошибках, чем обычный режим.
Включение довольно просто:
- На своем сервере откройте
/config/defines.inc.php
файл. - Найдите строку:
define('_PS_MODE_DEV_', false);
- Измените «false» на «true».
- Сохраните изменения.
Теперь перезагрузите любую пустую или подозрительную страницу: вы должны получить гораздо больше информации.
p() и d()
PHP-разработчики привыкли регулярно вызывать print_r($var)
чтобы знать, что лежит внутри $var
. Чтобы правильно отобразить содержимое $var, они часто инкапсулируют print_r()
в тегах HTML или XML
PrestaShop делает это за вас! p()
и d()
оба обертки вокруг print_r()
. p()
возвращает содержимое переменной, тогда как d()
заканчивается с die('END')
.
Кроме того, PrestaShop определяет ppp()
и ddd()
методы, которые являются соответственно псевдонимами p()
и d()
. Они работают точно так же, но их часто легче искать и находить в огромном блоке кода.
Эти методы отладки недоступны по умолчанию. Чтобы активировать их, вы должны включить режим разработчика (см. Выше).
Профайлер кода
Профайлер PrestaShop — отличный способ обнаружить узкие места в вашем коде: после включения каждой страницы на фронт или бэк стороне вашего магазина будет отображаться много информации о странице и ее файлах:
- Load time.
- Processed hooks.
- Memory usage.
- Number of database queries and their overall duration.
- Database stopwatches per query.
- Duplicate queries.
- Database table stress.
- ObjectModel instances.
- Included files.
Это огромный шаг в определении того, какие файлы или SQL-запрос вы должны изменить, когда вам нужно улучшить производительность вашего магазина.
Включение этого довольно просто:
- На вашем сервере откройте
/config/defines.inc.php
file. - Найдите строку (в районе строки 43):
define('_PS_DEBUG_PROFILING_', false);
- В этой строке замените «false» to «true».
- Сохраните изменения.
Теперь загрузите любую страницу своего магазина, будь то front-end или back-end, и в нижней части страницы отобразится много статистики ниже обычного содержимого этой страницы.
Чтобы отключить режим профилирования, просто откройте файл define.inc.php и измените значение на «false» в указанной выше строке.
Вот результат на главной странице:
Вот результат из бэк-офиса: