CreativityJuice

Problème d’activation de plugins WordPress #

Extrait : Comment debugger les warnings d'activation de vos plugins WordPress avec la bufferisation de sortie.

Si vous avez déjà un peu touché au développement de plugins pour WordPress, il vous est peut-être arrivé d’avoir un warning lors de l’activation de ceux-ci. Ceci est du à l’envoie de caractères sur la sortie standard avant d’avoir déclaré le header. C’est assez gênant et pas très professionnel de diffuser un plugin comme ça.

WordPress plugin activation issue

D’où ça vient ?

Généralement, il s’agit juste d’un (de quelques) warning(s) généré(s) pendant l’activation du plugin. Par exemple, si vous avez mis WordPress en mode debug (WP_DEBUG à true) ou si vous utilisez xDebug.

Comment on s’en sort ?

On sort du mode debug de WordPress, on desactive xDebug, et on joue avec les flags de error_reporting dans le php.ini pour cacher les warnings. Ok, je déconne ! On pourrait peut-être debugger nos warnings. Par contre, on aimerait bien avoir accès à ces warnings pour debugger un peu plus efficacement qu’en aveugle.

Comment accéder à ces caractères ?

On va pouvoir jouer avec la bufferisation de sortie. Qu’est ce que c’est que ce truc ? Ça permet juste de mettre dans un buffer les caractères qui étaient destinés à la sortie standard. On va utiliser deux fonctions php ob_start et ob_get_contents. La première sert à commencer la bufferisation de la sortie, et avec la seconde on récupère le contenu du buffer.
Ça donnerait donc un truc comme ça :

register_activation_hook(__FILE__,'monplugin_activate');
function monplugin_activate(){
ob_start();
//Ici votre code pour l'activation du plugin
$contents = ob_get_contents();
}

Pour ce qui est de récupérer la variable $contents, je vous laisse choisir : mettre un point d’arrêt et debugger avec votre outil préféré, un petit exit ou encore error_log.

Pour plus d’infos sur cette histoire de bufferisation de sortie, allez faire un tour sur l’article du site du zero : La tamporisation de sortie en PHP.

Amusez vous bien !

Tags: , ,

Amplify Nature – Profil Biodiversité

Amplify Nature – Profil Biodiversité# 29/09/13 # 1

Chamallow – Agence Relation Presse

Chamallow – Agence Relation Presse# 01/09/13 # 2

Archireport – Assistant numérique de vos chantiers

Archireport – Assistant numérique de vos chantiers# 08/04/13 # 3

Giga.de – Nouvelles technologies et jeux vidéo

Giga.de – Nouvelles technologies et jeux vidéo# 22/01/13 # 4

Yadlavoix – École de chant

Yadlavoix – École de chant# 05/12/12 # 5

Wankin Noodles (groupe)

Wankin Noodles (groupe)# 19/11/12 # 6

Suivre mes derniers projets en RSS.