Jak włączyć tryb programisty / debugowania?

36

Instalowanie rdzenia drupal 8 (przy użyciu standardowego profilu). za każdym razem, gdy pojawia się wyjątek / błąd, pojawia się pusta strona z komunikatem „Witryna napotkała błąd. Spróbuj ponownie później”. (jak na obrazku poniżej) tekst i brak szczegółów / śladu na temat błędu.

wprowadź opis zdjęcia tutaj

vijaycs85
źródło

Odpowiedzi:

51

Na stronie programistycznej sugerowałbym odkomentowanie następujących wierszy w settings.phppliku. emacs sites/default/settings.php

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

a następnie skopiowanie pliku example.settings.local.phpz /sitesfolderu do /sites/defaultfolderu i zmiana jego nazwy nasettings.local.php

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

Oprócz dodania następującego ustawienia

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

dodaje także kilka innych ustawień, które pomogą ci w debugowaniu i ułatwią programowanie. Jeśli nie chcesz żadnego z nich w szczególności, zawsze możesz je skomentować.

Uwaga: jeśli uważasz, że dodanie file_existswywołania do każdej strony spowolni witrynę, zawsze możesz ją usunąć w kodzie produkcyjnym.

Gokul NK
źródło
Jeśli nie masz przykładowego pliku, możesz także utworzyć plik zawierający<?php $config[...;
Danielle Madeley
1
Jak wspomniano poniżej, moduł Devel może ułatwić pracę Drupalowi 8. Zweryfikowano, że $ config ['system.logging'] ['error_level'] = 'verbose'; ustawienia wydają się działać.
Darrell Ulm
Utworzyłem kontener dokerów, który zawiera niezbędne ustawienia do debugowania i nie buforowania - mam nadzieję, że okaże się przydatny: hub.docker.com/r/feikede/drupal-dev
Rainer Feike
8

Łatwą opcją, jeśli masz dostęp do Drupal Console, jest włączenie środowiska programowania / debugowania za pomocą drupal site:mode dev; kiedy będziesz gotowy, aby przywrócić go do produkcji, użyj drupal site:mode prod.

4life
źródło
1
Niezła sztuczka z konsolą Drupal
ognockocaten
7

Oto zmienna o różnych wartościach:

$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose
Flo Develop
źródło
2
Dziękujemy za dodanie możliwych wartości.
plocks
Tak, dziękuję za dodanie możliwych wartości, które były zaskakująco trudne do znalezienia.
arnoldbird
4

Aby uzyskać podstawowe komunikaty o błędach w Drupal 8, nie musisz w ogóle dotykać żadnego kodu. Po prostu przejdź do:

/ admin / config / development / logowanie

i ustaw „Komunikaty o błędach na wyświetlanie” na odpowiednim poziomie.

Możesz również wyświetlić swoje ostatnie błędy za pomocą interfejsu administratora:

/ admin / raporty / dblog

To powiedziawszy, inne odpowiedzi na temat plików ustawień istotne - powinieneś zawsze pokazywać błędy w witrynie deweloperskiej, a nie produkcyjnej.

Nadpisane obiekty / klucze $ config w ustawieniach. Php nie zostaną zapisane w katalogu synchronizacji podczas eksportowania, więc podając swoje ustawienia. Php znajduje się w .gitignore, możesz nadal bezpiecznie używać systemu konfiguracji do synchronizacji między klonami tej samej strony .

William Turrell
źródło
0

Możesz także zainstalować moduły Devel i Devel. Umożliwi to debugowanie za pomocą kint(xyz).

rshah
źródło
0

Jeśli masz dostęp tylko do Drusha (bez konsoli Drupal) i pracujesz na zdalnym serwerze, możesz ustawić konfigurację tak, aby wyświetlała wszystkie błędy:

drush MYSITE.MYENV config-set system.logging poziom_błędu wszystko -y

Jest to przydatne, jeśli otrzymujesz WSOD na zdalnym serwerze i nie możesz rozwiązać problemu bez dodatkowych informacji.

Patrick Kenny
źródło
W przypadku opisanej sytuacji gorąco polecam drush sqlcnastępnie, SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1aby pokazać ostatni wpis na blogu.
Gogowitsch,
0

Pusta strona z komunikatem „Witryna napotkała błąd. Spróbuj ponownie później”. nigdzie cię nie zabiorę. Aby uzyskać więcej informacji z witryny Drupal 8, możesz włączyć następujące konfiguracje.

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

W przypadku lokalnego programowania Drupal 8 należy również włączyć raportowanie błędów, wyświetlanie błędów i wyświetlanie błędu uruchamiania, aby pomóc w dalszym debugowaniu i naprawianiu poważnego błędu środowiska wykonawczego.

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

Więcej informacji na temat debugowania TWIG i włączania debugowania za pomocą konsoli Drupal znajduje się w poście na blogu poniżej.

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

Gulab Bisht
źródło