Як увімкнути режим розробника / налагодження?


36

Встановлення drupal 8 core (використовуючи стандартний профіль). щоразу, коли я отримую виняток / помилку, я отримую порожню сторінку з написом "На веб-сайті сталася помилка. Будь ласка, спробуйте пізніше." (як показано нижче) тексту та жодних деталей / слідів про помилку.

введіть тут опис зображення

Відповіді:


51

На сайті розробки я б запропонував коментувати наступні рядки у settings.phpфайлі. emacs sites/default/settings.php

if (file_exists(__DIR__ . '/settings.local.php')) {
  include __DIR__ . '/settings.local.php';
}

а потім скопіюйте файл example.settings.local.phpіз /sitesпапки в /sites/defaultпапку та перейменуйте його вsettings.local.php

cp sites/example.settings.local.php sites/default/settings.local.php

Крім додавання наступних налаштувань

$config['system.logging']['error_level'] = 'verbose';

він також додає кілька інших налаштувань, які допоможуть вам у налагодженні та полегшують розвиток. Якщо ви не хочете жодної з них зокрема, ви завжди можете їх прокоментувати.

Примітка. Якщо ви думаєте, що додавання file_existsдзвінка до кожної сторінки призведе до уповільнення веб-сайту, його завжди можна видалити у виробничому коді.


Якщо у вас немає прикладного файлу, ви також можете просто створити файл, що містить<?php $config[...;
Danielle Madeley,

1
Як зазначено нижче, модуль Devel може полегшити роботу для Drupal 8. Перевірено, що $ config ['system.logging'] ['error_level'] = 'verbose'; Здається, налаштування працюють.
Даррелл Ульм

Я створив контейнер docker, який постачається з необхідними налаштуваннями для налагодження та не кешування - сподіваюся, це корисно: hub.docker.com/r/feikede/drupal-dev
Rainer Feike


8

Простий варіант, якщо у вас є доступ до консолі Drupal, - це включити середовище розробки / налагодження за допомогою drupal site:mode dev; коли ви готові повернути його до виробництва, використовуйте drupal site:mode prod.


1
Хороший трюк з консоллю Drupal
ognockocaten

7

Ось змінна з різними значеннями:

$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose

2
Дякуємо за додавання можливих значень.
заговори

Так, дякую за додавання можливих значень, які було напрочуд важко знайти.
arnoldbird

4

Щоб отримати основні повідомлення про помилки в Drupal 8, вам взагалі не потрібно торкатися жодного коду. Просто перейдіть до:

/ admin / config / development / logging

і встановіть "Повідомлення про помилки для відображення" на відповідний рівень.

Ви також можете переглянути останні помилки через інтерфейс адміністратора:

/ адміністратор / звіти / dblog

Втім, інші відповіді про файли налаштувань є актуальними - ви завжди повинні робити видимі помилки на своєму веб-сайті, а не на виробництві.

Перезаписані об’єкти / ключі $ config у settings.php не будуть записуватися в каталог синхронізації під час експорту, тому, якщо ваш налаштування.php знаходиться у .gitignore, ви можете продовжувати безпечно використовувати конфігураційну систему для синхронізації між клонами того ж сайту .


0

Ви також можете встановити модулі kint Devel і Devel. Це дозволить налагодити використання kint(xyz).


0

Якщо у вас є лише доступ до Drush (немає консолі Drupal) і ви працюєте на віддаленому сервері, ви можете встановити конфігурацію для відображення всіх помилок:

ударний MYSITE.MYENV конфігураційний набір system.logging error_level all -y

Це корисно, якщо ви отримуєте WSOD на віддаленому сервері і не можете усунути неполадки без додаткової інформації.


Для описаної ситуації я також настійно рекомендую, drush sqlcпісля чого SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1слід показати останній запис у dblog.
Гогович

0

Пуста сторінка з "На веб-сайті виникла помилка. Будь ласка, спробуйте пізніше." не забере тебе нікуди. Щоб отримати більше інформації з вашого сайту Drupal 8, ви можете ввімкнути наступні конфігурації.

$config['system.logging']['error_level'] = 'verbose';

Для локальної розробки Drupal 8 слід також включити звітність про помилки, помилки відображення та помилку запуску дисплея, щоб допомогти вам надалі налагоджувати та виправляти основні помилки виконання.

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

Ви можете знайти більше інформації про налагодження TWIG та ввімкнення налагодження за допомогою Drupal Console в блозі нижче.

https://www.drupixels.com/blog/enable-debug-mode-and-error-reporting-local-development-drupal-8


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.