Odpowiedzi:
Na stronie programistycznej sugerowałbym odkomentowanie następujących wierszy w settings.php
pliku. 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.php
z /sites
folderu do /sites/default
folderu 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_exists
wywołania do każdej strony spowolni witrynę, zawsze możesz ją usunąć w kodzie produkcyjnym.
Dodaj następujący wiersz w pliku settings.php.
$config['system.logging']['error_level'] = 'verbose';
Zobacz Uczyń sztuczki / narzędzia programistyczne dla D8 bardziej wykrywalnymi / oczywistymi, aby uzyskać więcej szczegółów.
Ł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
.
Oto zmienna o różnych wartościach:
$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose
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ń są 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 .
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.
drush sqlc
następnie, SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1
aby pokazać ostatni wpis na blogu.
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
Aby włączyć debugowanie, postępuj zgodnie z artykułem: https://www.codeproject.com/Tips/5246457/Enable-Debugging-in-Twig-templates-Drupal-8
<?php $config[...;