Les modes DEBUG et DEV

Billet

Pour aider les développeurs de thèmes et de plugins, Dotclear est doté de deux modes spéciaux. Il est important de savoir quels comportements de Dotclear changent avec l'utilisation de ces modes.

DEV

Le mode DEV est utilisé si la constante DC_DEV est définie à true dans le fichier config.php, on vérifie ensuite sa valeur en utilisant le retour de la méthode App::config()->devMode(): bool. Ce mode est désactivé par défaut sur les versions de distribution stable de Dotclear et activé sur les versions -dev.

Fichier minifié
En mode DEV les fichiers minifiés ne seront pas cherchés et donc pas retournés lors de la demande au serveur de fichiers lancée avec ?pf=, ?vf= cela afin de faciliter la lecture (visuelle) des fichiers sources.

Suffixe de fichier
En mode DEV les demandes faites au serveur de fichiers seront affublées d'un suffixe sous forme d'une chaîne de caractères aléatoires, pour prévenir tout problème de cache.

Module et version du core
En mode DEV les modules des dépôts seront retournés même si leur version minimum de Dotclear ne correspond pas. Attention cette différence peu apporter de la confusion dans le retour de mise à jour de dépôts tiers et dépôts officiels de modules.

Module et erreur
En mode DEV certaines exceptions lancées par des modules (plugins ou thèmes) pourront être accompagnées d'un message plus détaillé (mais comportant des informations plus sensibles).

Déprécié
En mode DEV, l'utilisation de méthode dépréciée sera enregistrée dans les logs Dotclear. (La table log de la base de données Dotclear) A noter que la fonction de log des dépréciés est munie d'une limite d'enregistrement, les plus anciens seront automatiquement effacés.

Git
En mode DEV, les modules appartenant à un dépôt GIT auront une présentation différente dans la liste des modules.

Admin (backend)
En mode DEV, un bandeau rétractable sera présent en haut de la page d'administration, il affichera différentes informations sur le temps de chargement de la page, l'utilisation mémoire et les variables globales et l'autoloader.
Les liens vers des fichiers css et js seront affublés d'un suffixe sous forme de numéro de version pour forcer leur rechargement et ainsi prévenir d'éventuels problèmes de cache.

DEBUG

Le mode DEBUG est utilisé si la constante DC_DEBUG est définie à true dans le fichier config.php, on vérifie ensuite sa valeur en utilisant le retour de la méthode App::config()->debugMode(): bool. Ce mode est désactivé par défaut sur les versions de distribution stable de Dotclear et activé sur les versions -dev.

Exception
En mode DEBUG, les exceptions attrapées par l'application seront accompagnées de leur trace, c'est à dire le déroulement du script jusqu'à l'exception. Le message retourné peut être également plus explicite et retourner plus d'informations utiles mais sensibles.

Fichier minifié
En mode DEBUG les fichiers minifiés ne seront pas cherchés et donc pas retournés lors de la demande au serveur de fichiers lancée avec ?pf=, ?vf=.

Suffixe de fichier
En mode DEBUG les demandes faites au serveur de fichiers seront affublées d'un suffixe sous forme de numéro de version de dotclear, pour prévenir tout problème de cache.

Module et version du core
En mode DEBUG les modules des dépôts seront retournés même si leur version minimum de Dotclear ne correspond pas.

Module et recherche
En mode DEBUG la liste des modules de dépôts aura une colonne supplémentaire, lors de recherche, affichant le score de pertinence de recherche obtenu.

Git
En mode DEBUG, les modules appartenant à un dépôt GIT auront une présentation différente dans la liste des modules.

Admin (backend)
En mode DEBUG, les liens vers des fichiers css et js seront affublés d'un suffixe sous forme de numéro de version pour forcer leur rechargement et ainsi prévenir d'éventuels problèmes de cache.

jQuery
En mode DEBUG, les options de jQuery migrate seront activées.

Console
En mode DEBUG, la variable JS dotclear.debug passe également à true et permet entre autre de logger les retours d'erreurs des appels REST.

Conclusion

Ces deux modes tentent d'apporter de l'aide au développement sous Dotclear en modifiant le comportement de certaines fonctions, mais dévoilent également un peu plus d'informations qui peuvent être sensibles. Il est fortement conseillé de ne pas activer ces modes sur une installation en production.

Le contenu de ce document a été écrit suivant le code de la version 2.28 de Dotclear.

La discussion continue ailleurs

URL de rétrolien : https://dotclear.watch/trackback/430