<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CreativityJuice &#187; debugger</title>
	<atom:link href="http://www.creativityjuice.com/tag/debugger/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.creativityjuice.com</link>
	<description>Donnez du jus à votre communication web !</description>
	<lastBuildDate>Tue, 08 Oct 2013 07:27:52 +0000</lastBuildDate>
	<language>fr-FR</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.7.41</generator>
	<item>
		<title>Problème d&#8217;activation de plugins WordPress</title>
		<link>http://www.creativityjuice.com/blog/probleme-dactivation-de-plugins-wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=probleme-dactivation-de-plugins-wordpress</link>
		<comments>http://www.creativityjuice.com/blog/probleme-dactivation-de-plugins-wordpress/#comments</comments>
		<pubDate>Thu, 08 Nov 2012 10:23:31 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[debugger]]></category>
		<category><![CDATA[développement de plugins]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.creativityjuice.com/?p=618</guid>
		<description><![CDATA[Comment debugger les warnings d'activation de vos plugins WordPress avec la bufferisation de sortie.]]></description>
				<content:encoded><![CDATA[<p>Si vous avez déjà un peu touché au développement de plugins pour WordPress, il vous est peut-être arrivé d&rsquo;avoir un warning lors de l&rsquo;activation de ceux-ci. Ceci est du à l&rsquo;envoie de caractères sur la sortie standard avant d&rsquo;avoir déclaré le header. <span id="more-618"></span>C&rsquo;est assez gênant et pas très professionnel de diffuser un plugin comme ça.</p>
<p><a href="http://www.creativityjuice.com/wp-content/uploads/2012/11/WordPress_plugin_activation_issue.jpg"><img class="alignnone size-full wp-image-643 colorbox-618" title="WordPress plugin activation issue" src="http://www.creativityjuice.com/wp-content/uploads/2012/11/WordPress_plugin_activation_issue.jpg" alt="WordPress plugin activation issue" width="1432" height="401" /></a></p>
<h2>D&rsquo;où ça vient ?</h2>
<p>Généralement, il s&rsquo;agit juste d&rsquo;un (de quelques) warning(s) généré(s) pendant l&rsquo;activation du plugin. Par exemple, si vous avez mis WordPress en mode debug (WP_DEBUG à true) ou si vous utilisez <a title="xDebug" href="http://xdebug.org/" target="_blank">xDebug</a>.</p>
<h2>Comment on s&rsquo;en sort ?</h2>
<p>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&rsquo;en aveugle.</p>
<h2>Comment accéder à ces caractères ?</h2>
<p>On va pouvoir jouer avec la bufferisation de sortie. Qu&rsquo;est ce que c&rsquo;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 <a title="ob_start" href="http://php.net/manual/fr/function.ob-start.php" target="_blank">ob_start</a> et <a title="ob_get_contents" href="http://www.php.net/manual/fr/function.ob-get-contents.php" target="_blank">ob_get_contents</a>. La première sert à commencer la bufferisation de la sortie, et avec la seconde on récupère le contenu du buffer.<br />
Ça donnerait donc un truc comme ça :</p>
<pre class="brush: php; title: ; notranslate">
register_activation_hook(__FILE__,'monplugin_activate');
function monplugin_activate(){
ob_start();
//Ici votre code pour l'activation du plugin
$contents = ob_get_contents();
}
</pre>
<p>Pour ce qui est de récupérer la variable <em>$contents</em>, je vous laisse choisir : mettre un point d&rsquo;arrêt et debugger avec votre outil préféré, un petit <a title="PHP exit" href="http://php.net/manual/fr/function.exit.php" target="_blank">exit</a> ou encore <a title="PHP error log" href="http://de1.php.net/manual/fr/function.error-log.php" target="_blank">error_log</a>.</p>
<p>Pour plus d&rsquo;infos sur cette histoire de bufferisation de sortie, allez faire un tour sur l&rsquo;article du site du zero : <a title="La tamporisation de sortie en PHP" href="http://www.siteduzero.com/tutoriel-3-38102-la-tamporisation-de-sortie-en-php.html" target="_blank">La tamporisation de sortie en PHP</a>.</p>
<p>Amusez vous bien !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativityjuice.com/blog/probleme-dactivation-de-plugins-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
