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.
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.
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.
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
.
Voici la variable avec les différentes valeurs:
$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose
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 .
Pour activer le débogage, suivez l'article: https://www.codeproject.com/Tips/5246457/Enable-Debugging-in-Twig-templates-Drupal-8
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
Vous pouvez également installer les modules Devil et Devel kint. Cela vous permettra de déboguer en utilisant kint(xyz)
.
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.