Comment activer le mode développeur / débogage?

36

Installation de Drupal 8 core (avec profil standard). chaque fois que j'obtiens une exception / erreur, la page vierge s'affiche: "Le site Web a rencontré une erreur. Veuillez réessayer plus tard." (comme dans l'image ci-dessous) texte et pas de détails / trace d'erreur.

entrez la description de l'image ici

vijaycs85
la source

Réponses:

51

Sur un site de développement, je suggérerais de ne pas commenter les lignes suivantes du settings.phpfichier. emacs sites/default/settings.php

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

puis copiez le fichier example.settings.local.phpde /sitesdossier en /sites/defaultdossier et renommez-le ensettings.local.php

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

En plus d'ajouter le paramètre suivant

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

il ajoute également quelques autres paramètres qui vous aideront à déboguer et à faciliter le développement. Si vous n'en voulez pas en particulier, vous pouvez toujours les commenter.

Remarque: si vous pensez que l'ajout d'un file_existsappel à chaque page ralentira le site, vous pouvez toujours le supprimer du code de production.

Gokul NK
la source
Si vous n'avez pas de fichier exemple, vous pouvez simplement créer un fichier contenant:<?php $config[...;
Danielle Madeley
1
Comme mentionné ci-dessous, le module Devel peut simplifier les choses pour Drupal 8. Vérifié que la $ config ['system.logging'] ['error_level'] = 'verbose'; paramètres semble fonctionner.
Darrell Ulm
J'ai créé un conteneur de docker qui vient avec les paramètres nécessaires pour le débogage et non-cache - espoir il est utile: hub.docker.com/r/feikede/drupal-dev
Rainer Feike
8

Une option simple, si vous avez accès à Drupal Console, consiste à activer l’environnement de développement / débogage à l’aide de drupal site:mode dev; lorsque vous êtes prêt à revenir en production, utilisez-le drupal site:mode prod.

4 vie
la source
1
Belle astuce avec la console Drupal
ognockocaten
7

Voici la variable avec les différentes valeurs:

$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose
Flo Develop
la source
2
Merci d'avoir ajouté les valeurs possibles.
plocks
Oui, merci d’avoir ajouté les valeurs possibles, qui étaient étonnamment difficiles à trouver.
Arnold
4

Pour obtenir des messages d'erreur de base dans Drupal 8, vous n'avez besoin de toucher à aucun code. Il suffit d'aller à:

/ admin / config / development / logging

et réglez "Messages d'erreur à afficher" sur un niveau approprié.

Vous pouvez également afficher vos erreurs récentes via l'interface d'administration:

/ admin / reports / dblog

Cela étant dit, d’autres réponses concernant les fichiers de paramètres sont pertinentes: vous ne devez afficher que les erreurs visibles sur votre site de développement, pas la production.

Les objets / clés $ config écrasés dans settings.php ne seront pas écrits dans le répertoire de synchronisation lors de l'exportation. Par conséquent, si votre settings.php est au format .gitignore, vous pouvez continuer à utiliser le système de configuration en toute sécurité pour effectuer la synchronisation entre les clones du même site. .

William Turrell
la source
0

Vous pouvez également installer les modules kint Devel et Devel. Cela vous permettra de déboguer en utilisant kint(xyz).

rshah
la source
0

Si vous avez uniquement accès à Drush (pas de console Drupal) et que vous travaillez sur un serveur distant, vous pouvez configurer la configuration pour afficher toutes les erreurs:

drush MYSITE.MYENV config-set system.logging error_level tout -y

Ceci est utile si vous obtenez un WSOD sur un serveur distant et que vous ne pouvez pas résoudre les problèmes sans informations supplémentaires.

Patrick Kenny
la source
Pour la situation décrite, je recommande également fortement de drush sqlcsuivre SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1la dernière entrée du dblog.
Gogowitsch
0

Page blanche avec "Le site Web a rencontré une erreur. Veuillez réessayer plus tard." ne vous mènera nulle part. Pour obtenir plus d'informations sur votre site Drupal 8, vous pouvez activer les configurations suivantes.

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

Pour le développement local de Drupal 8, vous devez également activer le rapport d’erreurs, les erreurs d’affichage et les erreurs de démarrage pour vous aider à poursuivre le débogage et la correction des erreurs d’exécution majeures.

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

Vous trouverez plus d'informations sur le débogage TWIG et sur l'activation du débogage avec Drupal Console dans l'article de blog ci-dessous.

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

Gulab Bisht
la source