Как настроить среду отладки в Shopware

Отладка в магазине может быть головной болью, если вы не знаете или используете правильные инструменты. Как уже упоминалось ранее в нашем уроке Отладка и профилирование Shopware правильно с помощью Shopware Profiler, мы показали, как установить профилировщик Shyim для отладки шаблонов, запросов, производительности сети с помощью полезной панели инструментов во внешнем интерфейсе. Тем не менее, как вы можете отладить ошибку, которая не появляется во внешнем интерфейсе, а просто белый экран? Если вы не видите исключений, генерируемых PHP во внешнем интерфейсе, то, возможно, вы неправильно настроили свой config.php файл для отображения исключений во внешнем интерфейсе.

1. Отображение исключений PHP и отключение кэша шаблонов

Как и большинство платформ, вы можете настроить глобальные параметры в одном файле. В этом случае для магазина, настройки PHP настраиваются в файле config.php корневой папки проекта. Файл возвращает в основном простой массив с некоторыми опциями. Конфигурация полностью зависит от вас, поэтому для получения дополнительной информации, прочитайте документы для получения дополнительной информации об этом файле.

Поскольку мы хотим отладить, следующая конфигурация покажет информацию об ошибках JS и PHP во внешнем интерфейсе и бэкенде вашего приложения магазина:

Заметка

Эта конфигурация безопасна только для среды разработки (локально), никогда не используйте ее для производства.

 [
'throwExceptions' => true,
'showException' => true
],
'template' => [
'forceCompile' => true
],
'model' => [
'cacheProvider' => 'Array'
],
'cache' => [
'backend' => 'Black-Hole',
'backendOptions' => [],
'frontendOptions' => [
'write_control' => false
]
],
"phpsettings" => [
'display_errors' => 1,
'error_reporting' => E_ALL
]
);

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

Исключение магазина

Наиболее важными свойствами для отладки являются phpsettings, кеш и шаблон. Например, установка false для ForceCompile предотвращает кеширование шаблонов Smarty. Обычно вы должны очищать кэш после каждого изменения в шаблоне, но если вы установите для ForceCompile значение true, ваш шаблон будет компилироваться при каждой перезагрузке. Это должно быть важным вариантом для каждого разработчика. Имейте в виду, что он оказывает большое влияние на время загрузки и никогда не должен использоваться в производстве.

Разница между throwExceptions и showExceptions заключается в том, как будет обрабатываться исключение. Опция showException сохраняет обработчик ошибок Shopware включенным, перехватывает PHP-исключение и печатает сообщение, вместо того, чтобы показывать универсальное «К сожалению! Произошла ошибка!» сообщение. Напротив, опция throwExceptions пропускает обработчик ошибок Shopware и выводит исключение чистого PHP. Это важно понимать, потому что обработчик ошибок Shopware должен отлавливать некоторые ошибки для процессов самовосстановления, например, Аннулирование токена CSRF.

2. Отладка Smarty шаблонов

Если вы хотите отлаживать ваши шаблоны Smarty, вы можете использовать модификаторы Smarty, такие как:

{somevariable|@var_export}
{somevariable|@var_dump}
{somevariable|@print_r}

Кроме того, вы можете сбросить все переменные, назначенные шаблону, используя консоль отладки Smarty. Да, smarty не вторгается в структуру HTML вашего проекта для отладки переменных, если вы используете блок отладки в любом шаблоне, где вы хотите отлаживать:

{block name="frontend_index_logo"}
{* This will show the Smarty Debug PopUp*}
{debug}

Some HTML

{/block}

Добавление этой строки внутри любого блока приведет к отображению всплывающего окна с представлением Smarty, которое отображает список использованных переменных в шаблоне, в который вы добавили блок. Как уже упоминалось, всплывающее окно может быть заблокировано в некоторых браузерах по соображениям безопасности, не забудьте разрешить всплывающие окна в вашем браузере для сайта, который вы отлаживаете:

Smarty Debug Templates

после разрешения всплывающих окон (если они были заблокированы) перезагрузите страницу, и всплывающее окно браузера должно отобразиться:

Smarty Shopware Шаблоны отладки

Если вы знаете другую конфигурацию или инструменты для отладки в Shopware, пожалуйста, поделитесь ими с сообществом в поле для комментариев.

Ссылка на основную публикацию
Adblock
detector