web-dev-qa-db-fra.com

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

Installation de drupal 8 core (en utilisant le profil standard). Chaque fois que je reçois une exception/erreur, je reçois une page vierge avec "Le site Web a rencontré une erreur. Veuillez réessayer plus tard." (Comme l'image ci-dessous) texte et aucun détail/trace d'erreur.

enter image description here

38
vijaycs85

Sur un site de développement, je suggère de ne pas commenter les lignes suivantes dans le settings.php fichier. emacs sites/default/settings.php

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

puis en copiant le fichier example.settings.local.php de /sites dossier vers /sites/default dossier et renommez-le en settings.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 ne voulez aucun d'entre eux en particulier, vous pouvez toujours les commenter.

Remarque: Si vous pensez ajouter un file_exists l'appel à chaque page ralentira le site, vous pouvez toujours le supprimer dans le code de production.

52
Gokul N K

Ajoutez la ligne suivante dans le fichier settings.php.

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

Voir Rendre les astuces/outils de développement pour D8 plus découvrables/évidents pour plus de détails.

18
vijaycs85

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

13
4life

Voici la variable avec les différentes valeurs:

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

Pour obtenir des messages d'erreur de base dans Drupal 8, vous n'avez pas besoin de toucher de code du tout. Allez simplement sur:

/ admin/config/development/logging

et définissez "Messages d'erreur à afficher" à un niveau approprié.

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

/ admin/reports/dblog

Cela dit, d'autres réponses sur les fichiers de paramètres sont pertinentes - vous ne devez que rendre les erreurs visibles sur votre site de développement, pas sur 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, donc à condition que vos settings.php soient dans .gitignore, vous pouvez continuer à utiliser en toute sécurité le système de configuration pour synchroniser entre les clones du même site .

4
William Turrell
0
Vipin Mittal

Page vierge 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 Drupal 8, vous devez également activer le rapport d'erreurs, afficher les erreurs et afficher l'erreur de démarrage pour vous aider à déboguer et à corriger les principales erreurs d'exécution.

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

Vous pouvez trouver plus d'informations sur TWIG débogage et activation du débogage avec Drupal Console dans le blog ci-dessous).

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

0
Gulab Bisht

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

0
rshah

Si vous n'avez accès qu'à Drush (no Drupal) et que vous travaillez sur un serveur distant, vous pouvez définir la configuration pour afficher toutes les erreurs:

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

Ceci est utile si vous obtenez un WSOD sur un serveur distant et ne pouvez pas dépanner sans plus d'informations.

0
Patrick Kenny