<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>planete php fr</title>
	<description>planete php fr</description>
	<link>http://planete-php.fr/rss.php</link>
	<language>fr-fr</language>
	<pubDate>Sun, 01 Aug 2010 01:24:28 +0200</pubDate>
	<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
	<generator>AFUP - à la mano</generator>
	<managingEditor>planetephpfr@afup.org (Perrick Penet / AFUP)</managingEditor>

		<item>
		<title>Bonnes pratiques pour subversion</title>
		<link>http://www.nexen.net/actualites/php/19741-bonnes_pratiques_pour_subversion.php</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/stop.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt;
Aaron Longnion a regroupé 18 bonnes pratiques autour de Subversion. Il a publié cette liste très complète pour entre autre, répondre aux attentes de son entreprise.&lt;br /&gt;
Bien sur, cette liste est propre à lui mais vous sera utile si vous souhaitez mettre en place et déployer Subversion dans vos projets PHP.&lt;ul&gt;&lt;li&gt;&lt;img src= &quot;http://www.nexen.net/nx_media/images/drapeaux/en.png&quot; alt=&quot;en&quot; witdth=&quot;18&quot; height=&quot;12&quot; /&gt;&amp;nbsp;&lt;a href=&quot;http://aqlong.posterous.com/top-18-subversion-best-practices&quot; title=&quot;http://aqlong.posterous.com/top-18-subversion-best-practices&quot;  onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;amp;weblink=Top+18+Subversion+Best+Practices&amp;amp;content_id=0'; return false;&quot;  class=&quot;weblink_img&quot;&gt;Top 18 Subversion Best Practices&lt;/a&gt; (0 visite)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
		<pubDate>Fri, 30 Jul 2010 06:47:41 +0200</pubDate>
		<guid>http://www.nexen.net/actualites/php/19741-bonnes_pratiques_pour_subversion.php</guid>
	</item>
		<item>
		<title>PHP-FPM (FastCGI Process Manager)</title>
		<link>http://moosh.et.son.brol.be/blog/index.php/2010/07/29/1078-php-fpm-fastcgi-process-manager-est-une-alternative-a-php-fastcgi-avec-toute-une-serie-d-amelioration-principalement-utilse-pour-les-site-a-fort-taux-d-utilisation</link>
		<description> &lt;p&gt;PHP-FPM est disponible dans le dernier php (5.3)... mais qu'est-ce-que c'est&amp;nbsp;?&lt;/p&gt;



&lt;p&gt;PHP-FPM (FastCGI Process Manager) est une alternative à PHP FastCGI avec toute une série d'amélioration.&lt;/p&gt;


&lt;p&gt;Principalement utile pour les sites à fort taux d'utilisation.&lt;/p&gt;


&lt;h3&gt;Plusieurs VHosts avec un UID/GID différent et des PHP.ini différents.&lt;/h3&gt;

&lt;p&gt;FPM permet de faire tourner plusieurs VHosts avec un UID/GID différent et des PHP.ini différents.&lt;/p&gt;


&lt;h3&gt;Support de l'upload accéléré&lt;/h3&gt;


&lt;h3&gt;Statistique de base&lt;/h3&gt;

&lt;p&gt;similaire à mod_status d'apache.&lt;/p&gt;

&lt;h3&gt;Redémarrage de secours en cas de destruction accidentelle de l'opcode&lt;/h3&gt;



&lt;h3&gt;Un header d'erreur&lt;/h3&gt;

&lt;p&gt;une config style&lt;/p&gt;

&lt;pre&gt;[ini]
 fastcgi.error_header = &amp;quot;HTTP/1.0 550 Server Made Big Boo&amp;quot;
&lt;/pre&gt;


&lt;p&gt;... provoquera l'envoi de cette erreur au lieu d'en &quot;200 tout va bien&quot; avec une page blanche.&lt;/p&gt;


&lt;h3&gt;amélioration de la gestion des processus en cas de graceful stop/start&lt;/h3&gt;


&lt;p&gt;En pratique ca permet de prendre en compte une nouvelle config qui nécessite un redémarrage sans interrompre ce qui avait commencé avec l'ancienne configuration.&lt;/p&gt;



&lt;h3&gt;Journalisation des scripts lents&lt;/h3&gt;

&lt;p&gt;avec&lt;/p&gt;
&lt;pre&gt;[xml]
    &amp;lt;value name=&amp;quot;request_slowlog_timeout&amp;quot;&amp;gt;5s&amp;lt;/value&amp;gt;
    &amp;lt;value name=&amp;quot;slowlog&amp;quot;&amp;gt;logs/slow.log&amp;lt;/value&amp;gt;
&lt;/pre&gt;

&lt;p&gt;donnera&lt;/p&gt;
&lt;pre&gt;[log]
 Sep 21 16:22:19.399162 pid 29715 (pool default)
 script_filename = /local/www/stable/www/catalogue.php 
 [0x00007fff23618120] mysql_query() /srv/stable/common/Database/class.MySQLRequest.php:20 
 [0x00007fff23618560] getResult() /srv/stable/common/Database/class.Facade.php:106 
 [0x00007fff23618aa0] query() /srv/stable/common/mysite.com/ORM/class.UsersMapper.php:99 

&lt;/pre&gt;

&lt;h3&gt;Journalisation de Stdout &amp;amp; stderr&lt;/h3&gt;



&lt;h3&gt;fastcgi_finish_request()&lt;/h3&gt;

&lt;p&gt;une fonction spéciale pour clôturer la connexion avec le client, mais continuer un traitement php à découvrir en détail &lt;a href=&quot;http://php-fpm.org/wiki/Features#fastcgi_finish_request.28.29&quot; hreflang=&quot;en&quot;&gt;ici&lt;/a&gt;&lt;/p&gt;



&lt;h3&gt;Autres points&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;PHP-FPM est compatible avec ZendOptimizer&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;


&lt;p&gt;à lire aussi&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;J'ai commencé une &lt;a href=&quot;http://fr.wikipedia.org/wiki/PHP-FPM&quot; hreflang=&quot;fr&quot;&gt;page wikipedia&lt;/a&gt; que vous pouvez compléter. &lt;sup&gt;[&lt;a href=&quot;#pnote-1078-1&quot; id=&quot;rev-pnote-1078-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Le &lt;a href=&quot;http://php-fpm.org/&quot; hreflang=&quot;en&quot;&gt;site du projet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.developpez.com/julienpauli/p8432/php/php-fpm-rejoind-le-svn-de-php/ php-fpm rejoint le svn de php&quot;&gt;http://blog.developpez.com/julienpauli/p8432/php/php-fpm-rejoind-le-svn-de-php/ php-fpm rejoint le svn de php&lt;/a&gt;  par Julien Pauli&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://svn.php.net/repository/php/php-src/trunk/sapi/fpm/php-fpm.conf.in&quot; hreflang=&quot;en&quot;&gt;Le fichier de config de fpm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;dispo pour &lt;a href=&quot;http://www.dotdeb.org/2010/07/25/php-5-3-3-packages-are-available/&quot; hreflang=&quot;en&quot;&gt;debian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://fr.php.net/migration53&quot; hreflang=&quot;en&quot;&gt;Migration vers 5.3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;#rev-pnote-1078-1&quot; id=&quot;pnote-1078-1&quot;&gt;1&lt;/a&gt;] Qui, le temps de rédiger et publier cet article, a déjà été retravaillée. C'est la magie wikipedia&lt;/p&gt;&lt;/div&gt;</description>
		<pubDate>Thu, 29 Jul 2010 13:23:09 +0200</pubDate>
		<guid>http://moosh.et.son.brol.be/blog/index.php/2010/07/29/1078-php-fpm-fastcgi-process-manager-est-une-alternative-a-php-fastcgi-avec-toute-une-serie-d-amelioration-principalement-utilse-pour-les-site-a-fort-taux-d-utilisation</guid>
	</item>
		<item>
		<title>Démarrer avec les WebSockets</title>
		<link>http://www.nexen.net/actualites/php/19740-demarrer_avec_les_websockets.php</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/position.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt;
La nouvelle g&amp;eacute;n&amp;eacute;ration des navigateurs comme Firefox, Google Chrome, Safari,  propose l'affichage d'une page en utilisant le protocole des WebSockets qui sera enti&amp;egrave;rement support&amp;eacute;  avec le HTML 5.&lt;br /&gt;
Le WebSocket est une technique de communication &amp;agrave; double sens qui permet,  entre autres, de faire du PUSH &amp;agrave; partir d'un serveur.&lt;br /&gt;
Le site Nettuts+ montre comment le mettre en place avec un serveur Xampp (Apache, PHP, MySQL), et surtout comment bien d&amp;eacute;marrer avec PHP.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a target=&quot;_self&quot; href=&quot;http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/&quot;&gt;Start Using HTML5 WebSockets Today &lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;/div&gt;</description>
		<pubDate>Thu, 29 Jul 2010 07:58:55 +0200</pubDate>
		<guid>http://www.nexen.net/actualites/php/19740-demarrer_avec_les_websockets.php</guid>
	</item>
		<item>
		<title>L'avenir de PHP vu par Arnaud Limbourg</title>
		<link>http://blog.mageekbox.net/?post/2010/07/29/L-avenir-de-PHP-vu-par-Arnaud-Limbourg</link>
		<description>&lt;p&gt;Voici déjà la quatrième interview de cette série concernant la vision de l'avenir qu'ont un panel d'utilisateurs divers et variés pour PHP.&lt;/p&gt;
&lt;p&gt;C'est aujourd'hui &lt;a href=&quot;http://twitter.com/arnaudlimbourg&quot;&gt;Arnaud Limbourg&lt;/a&gt; qui s'y colle.&lt;/p&gt;
&lt;p&gt;Je l'ai rencontré au dernier &lt;a href=&quot;http://www.afup.org/pages/forumphp2009/&quot;&gt;forum PHP&lt;/a&gt;, et j'avoue avoir bien &lt;a href=&quot;http://blog.mageekbox.net/?post/1970/01/01/Petit-moment-de-d%C3%A9lire-au-forum-PHP-2009...&quot;&gt;rigolé&lt;/a&gt; avec lui, notamment lors du repas des &lt;a href=&quot;http://blog.mageekbox.net/?post/2009/11/13/Fichiers-relatifs-%C3%A0-notre-conf%C3%A9rence-%C3%A0-propos-de-VIM&quot;&gt;conférenciers&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Il est le premier de cette série à utiliser &lt;a href=&quot;http://www.php.net&quot;&gt;PHP&lt;/a&gt; dans le cadre d'un site à fort trafic, et son point de vue vient donc très bien compléter ceux des intervenants précédents.&lt;/p&gt;    &lt;p&gt;Peux-tu te présenter en quelques mots ?

Arnaud Limbourg, actuellement responsable technique nouveaux médias chez 20 Minutes où j'ai en charge la maintenance, dans tous les sens du terme, du site 20minutes.fr et tout ce qui tourne autour.
Cela fait environ 8 ans que je fais du PHP, surtout pour des back offices et plus récemment dans le cadre... &lt;em&gt;&lt;a href=&quot;http://blog.mageekbox.net/?post/2010/07/29/L-avenir-de-PHP-vu-par-Arnaud-Limbourg&quot;&gt;Lire&lt;/em&gt; L'avenir de PHP vu par Arnaud Limbourg&lt;/a&gt;&lt;/p&gt;</description>
		<pubDate>Thu, 29 Jul 2010 09:00:00 +0200</pubDate>
		<guid>http://blog.mageekbox.net/?post/2010/07/29/L-avenir-de-PHP-vu-par-Arnaud-Limbourg</guid>
	</item>
		<item>
		<title>MediaWiki 1.16.0</title>
		<link>http://www.nexen.net/actualites/php/19739-mediawiki_1.16.0.php</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/mediawiki.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt;
MediaWiki vient de publier une nouvelle version, et il est important de souligner les nouveaut&amp;eacute;s suivantes : &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;
Le protocole Atom au niveau des flux RSS est maintenant support&amp;eacute;&lt;/li&gt;&lt;li&gt;
Possibilit&amp;eacute; de bloquer les utilisateurs d'envoyer des emails par &amp;laquo;&amp;nbsp;Sp&amp;eacute;cial: Email user&amp;nbsp;&amp;raquo;&lt;/li&gt;&lt;li&gt;
Le syst&amp;egrave;me de script de maintenance a &amp;eacute;t&amp;eacute; refait&lt;/li&gt;&lt;li&gt;
Le syst&amp;egrave;me de pr&amp;eacute;f&amp;eacute;rences a &amp;eacute;t&amp;eacute; r&amp;eacute;organis&amp;eacute;&lt;/li&gt;&lt;li&gt;
Le format SQLite a &amp;eacute;t&amp;eacute; am&amp;eacute;lior&amp;eacute;&lt;/li&gt;&lt;li&gt;
Am&amp;eacute;lioration du system ACL&lt;/li&gt;&lt;li&gt;
Une nouvelle location de cache a &amp;eacute;t&amp;eacute; int&amp;eacute;gr&amp;eacute;e pour le rendre plus rapide&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
Bien entendu, il est toujours important d'avoir activer l'extension DBA pour PHP pour am&amp;eacute;liorer les performances de MediaWiki&lt;br /&gt;
Pour finir, de nombreux correctifs ont &amp;eacute;t&amp;eacute; apport&amp;eacute;s pour cette version (1.16.0), mais aussi pour la version pr&amp;eacute;c&amp;eacute;dente (1.15.5).&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;img src= &quot;http://www.nexen.net/nx_media/images/drapeaux/en.png&quot; alt=&quot;en&quot; witdth=&quot;18&quot; height=&quot;12&quot; /&gt;&amp;nbsp;&lt;a href=&quot;http://techblog.wikimedia.org/2010/07/mediawiki-1-16-0/&quot; title=&quot;http://techblog.wikimedia.org/2010/07/mediawiki-1-16-0/&quot;  onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;amp;weblink=Annonce+MediaWiki+1.16.0&amp;amp;content_id=0'; return false;&quot;  class=&quot;weblink_img&quot;&gt;Annonce MediaWiki 1.16.0&lt;/a&gt; (0 visite)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
		<pubDate>Wed, 28 Jul 2010 19:39:51 +0200</pubDate>
		<guid>http://www.nexen.net/actualites/php/19739-mediawiki_1.16.0.php</guid>
	</item>
		<item>
		<title>Utiliser Zend_Log</title>
		<link>http://moosh.et.son.brol.be/blog/index.php/2010/07/28/1038-utiliser-zend_log</link>
		<description> &lt;p&gt;Allez on va essayer d'utiliser &lt;a href=&quot;http://framework.zend.com/manual/fr/zend.log.html&quot; hreflang=&quot;fr&quot;&gt;Zend_log&lt;/a&gt; convenablement.&lt;/p&gt;


&lt;p&gt;L'idée c'est de découper les moments de décisions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;J'écris mon code je décide de journaliser un message ou des infos&lt;/li&gt;
&lt;li&gt;Je gère mes journaux, je décide où va tel ou tel message.&lt;/li&gt;
&lt;li&gt;Je gère plusieurs staging, je change le comportement des mes dispatching&lt;/li&gt;
&lt;li&gt;Je change le format de stockage de mon journal, je décide comment disposer des informations reçues&lt;/li&gt;
&lt;li&gt;Je décide où je lis/récupère mes messages.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Julien débroussaille &lt;a href=&quot;http://julien-pauli.developpez.com/tutoriels/zend-framework/presentation/?page=Zend_Log&quot; hreflang=&quot;fr&quot;&gt;Zend_log&lt;/a&gt; dans sa &lt;a href=&quot;http://julien-pauli.developpez.com/tutoriels/zend-framework/presentation/&quot; hreflang=&quot;fr&quot;&gt;Présentation du Zend Framework&lt;/a&gt; et  une &lt;a href=&quot;http://www.zftutorials.com/zend-log/&quot; hreflang=&quot;en&quot;&gt;liste de tuto&lt;/a&gt; permet de compléter&lt;/p&gt;



&lt;h3&gt;J'écris mon code je décide de journaliser un message ou des infos&lt;/h3&gt;


&lt;p&gt;Pendant que je code ma réflexion doit se limiter à&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;quel message envoyer&lt;/li&gt;
&lt;li&gt;quelles infos complémentaire envoyer&lt;/li&gt;
&lt;li&gt;quelle gravité/sévérité/catégoriser de message j'envoie.&lt;/li&gt;
&lt;/ol&gt;

&lt;pre&gt;[php]
&amp;lt;?php 
$log-&amp;gt;info('Hello log');
?&amp;gt;
&lt;/pre&gt;


&lt;p&gt;ajoutons une info&lt;/p&gt;

&lt;pre&gt;[php]
&amp;lt;?php 
$log-&amp;gt;info('Hello log je suis à la ligne ' . __LINE__);
?&amp;gt;
&lt;/pre&gt;


&lt;p&gt;Bon là on a envoyé le message&lt;/p&gt;


&lt;h3&gt;Je gère mes journaux, je décide où vont les messages.&lt;/h3&gt;



&lt;p&gt;Ca se passe plutôt dans le script. On prépare un objet ($log). qui sera utilisé par la suite dans le code mais on va commencer à lui dire que faire de ces messages qui remontent.&lt;/p&gt;

&lt;pre&gt;[php]
&amp;lt;?php 
$log = new Zend_Log();
?&amp;gt;
&lt;/pre&gt;


&lt;p&gt;Première chose (évidente) assigner les &lt;a href=&quot;http://framework.zend.com/manual/fr/zend.log.writers.html&quot; hreflang=&quot;fr&quot;&gt;writers&lt;/a&gt; (les scribes).&lt;/p&gt;

&lt;pre&gt;[php]
&amp;lt;?php 
$redacteur = new Zend_Log_Writer_Stream('/repository/des/ficher.log');
$log -&amp;gt;addWriter($redacteur);
?&amp;gt;
&lt;/pre&gt;


&lt;p&gt;là c'est dans un un fichier mais &quot;stream&quot; permet aussi un accès plus large,&lt;/p&gt;

&lt;pre&gt;[php]
&amp;lt;?php 
$redacteur = new Zend_Log_Writer_Stream('php://output');
?&amp;gt;
&lt;/pre&gt;


&lt;p&gt;Et on a pas que &quot;stream&quot;, ca peut-être aussi&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;dans une &lt;a href=&quot;http://framework.zend.com/manual/fr/zend.log.writers.html#zend.log.writers.database&quot; hreflang=&quot;fr&quot;&gt;base de donnée&lt;/a&gt; -&amp;gt; Zend_Log_Writer_Db,&lt;/li&gt;
&lt;li&gt;dans &lt;a href=&quot;http://framework.zend.com/manual/fr/zend.log.writers.html#zend.log.writers.firebug&quot; hreflang=&quot;fr&quot;&gt;firebug&lt;/a&gt; -&amp;gt; Zend_Log_Writer_Firebug,&lt;/li&gt;
&lt;li&gt;dans un &lt;a href=&quot;http://framework.zend.com/manual/fr/zend.log.writers.html#zend.log.writers.mail&quot; hreflang=&quot;fr&quot;&gt;email&lt;/a&gt; -&amp;gt; Zend_Log_Writer_Mail,&lt;/li&gt;
&lt;li&gt;dans un mock -&amp;gt; Zend_Log_Writer_Mock&lt;/li&gt;
&lt;li&gt;dans &lt;a href=&quot;http://framework.zend.com/manual/fr/zend.log.writers.html#zend.log.writers.syslog&quot; hreflang=&quot;fr&quot;&gt;syslog&lt;/a&gt; -&amp;gt; Zend_Log_Writer_Syslog&lt;/li&gt;
&lt;li&gt;dans le néant ... (si le temps du développement ou de tests intensifs, vous ne voulez pas polluer vos logs, redirigez les un temps dans null  -&amp;gt; Zend_Log_Writer_Null&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;//&lt;a href=&quot;php&quot;&gt;php&lt;/a&gt;
&amp;lt;?php&lt;/p&gt;

&lt;pre&gt;$redacteur = new Zend_Log_Writer_Null;&lt;/pre&gt;

&lt;p&gt;?&amp;gt;
///&lt;/p&gt;


&lt;p&gt;et si ca ne me plait pas je peux faire mon scribe en partant de Zend_Log_Writer_Abstract&lt;/p&gt;


&lt;h3&gt;je décide où va tel ou tel message.&lt;/h3&gt;


&lt;p&gt;Si c'est pour mettre la même chose partout ce n'est pas spécialement intéressant.&lt;/p&gt;


&lt;p&gt;On va donc filtrer les messages à envoyer à chaque scribe. (rédacteur dans la doc)&lt;/p&gt;


&lt;p&gt;Pour ca on a 4 outils&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zend_Log_Filter_Interface&lt;/li&gt;
&lt;li&gt;Zend_Log_Filter_Message&lt;/li&gt;
&lt;li&gt;Zend_Log_Filter_Priority&lt;/li&gt;
&lt;li&gt;Zend_Log_Filter_Suppress&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Je change le format de stockage de mon journal, je décide comment disposer des informations reçues&lt;/h3&gt;


&lt;p&gt;La façon dont on écrit chaque message  est un format &quot;par défaut&quot; mais il peut être redéfini&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zend_Log_Formatter_Firebug&lt;/li&gt;
&lt;li&gt;Zend_Log_Formatter_Interface&lt;/li&gt;
&lt;li&gt;Zend_Log_Formatter_Simple&lt;/li&gt;
&lt;li&gt;Zend_Log_Formatter_Xml&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En utilisant cela vos pourrez&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://raphaelstolt.blogspot.com/2007/06/turning-zendlog-log-file-into-rss-feed.html&quot; hreflang=&quot;en&quot;&gt;logguer dans un fichier rss&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
		<pubDate>Wed, 28 Jul 2010 11:00:00 +0200</pubDate>
		<guid>http://moosh.et.son.brol.be/blog/index.php/2010/07/28/1038-utiliser-zend_log</guid>
	</item>
		<item>
		<title>Nouvelle utilisation de HipHop</title>
		<link>http://www.nexen.net/actualites/php/19738-nouvelle_utilisation_de_hiphop.php</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/herbes.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt;
Voici quelques mois, l'actualit&amp;eacute; parlait beaucoup de HipHop pour PHP car il est possible de transformer du code PHP en C++ pour ensuite le compiler avec G++.&lt;br /&gt;
Sebastian Bergmann montre qu'il est possible d'utiliser HipHop d'une autre mani&amp;egrave;re comme pour effectuer une analyse statique du code PHP, avec la possibilit&amp;eacute; de rep&amp;eacute;rer les erreurs.&lt;ul&gt;&lt;li&gt;&lt;img src= &quot;http://www.nexen.net/nx_media/images/drapeaux/en.png&quot; alt=&quot;en&quot; witdth=&quot;18&quot; height=&quot;12&quot; /&gt;&amp;nbsp;&lt;a href=&quot;http://sebastian-bergmann.de/archives/894-Using-HipHop-for-Static-Analysis.html&quot; title=&quot;http://sebastian-bergmann.de/archives/894-Using-HipHop-for-Static-Analysis.html&quot;  onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;amp;weblink=Using+HipHop+for+Static+Analysis&amp;amp;content_id=0'; return false;&quot;  class=&quot;weblink_img&quot;&gt;Using HipHop for Static Analysis&lt;/a&gt; (0 visite)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
		<pubDate>Tue, 27 Jul 2010 09:06:35 +0200</pubDate>
		<guid>http://www.nexen.net/actualites/php/19738-nouvelle_utilisation_de_hiphop.php</guid>
	</item>
		<item>
		<title>Actualité de développement PECL, edition 278</title>
		<link>http://www.nexen.net/actualites/pecl/19737-actualite_de_developpement_pecl,_edition_278.php</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/pecl.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt; 13 paquets ont &amp;eacute;t&amp;eacute; mis &amp;agrave; jour cette semaine :&lt;br /&gt;
Semaine du 29 juin 2010&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/solr/download/0.9.11/&quot;&gt;solr 0.9.11&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/libevent/download/0.0.4/&quot;&gt;libevent 0.0.4&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/mongo/download/1.0.8/&quot;&gt;mongo 1.0.8&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
Semaine du 6 Juillet 2010&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/xdebug/download/2.1.0/&quot;&gt;xdebug 2.1.0&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/WinCache/download/1.1.0stable/&quot;&gt;WinCache 1.1.0stable&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
Semaine du 13 Juillet 2010&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/ApacheAccessor/download/0.1.0/&quot;&gt;ApacheAccessor 0.1.0&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/imagick/download/3.0.0RC2/&quot;&gt;imagick 3.0.0RC2&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
Semaine du 20 Juillet 2010&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/fuse/download/0.1/&quot;&gt;fuse 0.1&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
Semaine du 27 Juillet 2010&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/imagick/download/3.0.0/&quot;&gt;imagick 3.0.0&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/mysqlnd_qc/download/1.0.0/&quot;&gt;mysqlnd_qc 1.0.0&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/gnupg/download/1.3.2/&quot;&gt;gnupg 1.3.2&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/chdb/download/0.2.0/&quot;&gt;chdb 0.2.0&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/package/ApacheAccessor/download/0.1.1/&quot;&gt;ApacheAccessor 0.1.1&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
PECL est la biblioth&amp;egrave;que d'extensions C de PHP.&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/&quot; title=&quot;http://pecl.php.net&quot; onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;weblink=PECL&amp;content_id=19375'; return false;&quot;&gt;PECL&lt;/a&gt;&lt;br /&gt;
&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&lt;a href=&quot;http://pecl.php.net/packages.php&quot; title=&quot;http://pecl.php.net/packages.php&quot; onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;weblink=Tous+les+paquets+PECL&amp;content_id=19375'; return false;&quot;&gt;Tous les paquets PECL&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;/div&gt;</description>
		<pubDate>Tue, 27 Jul 2010 08:37:42 +0200</pubDate>
		<guid>http://www.nexen.net/actualites/pecl/19737-actualite_de_developpement_pecl,_edition_278.php</guid>
	</item>
		<item>
		<title>Actualité de développement PEAR, edition 282</title>
		<link>http://www.nexen.net/actualites/pear/19736-actualite_de_developpement_pear,_edition_282.php</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/pear.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt; 21 paquets ont &amp;eacute;t&amp;eacute; mis &amp;agrave; jour ce mois-ci :&lt;br /&gt;
Semaine du 28 juin 2010&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/DB_DataObject/download/1.9.4/&quot;&gt;DB_DataObject 1.9.4&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/Payment_DTA/download/1.4.0a1/&quot;&gt;Payment_DTA 1.4.0a1&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/HTTP_Session2/download/0.7.3/&quot;&gt;HTTP_Session2 0.7.3&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/HTTP_OAuth/download/0.1.15/&quot;&gt;HTTP_OAuth 0.1.15&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/Calendar/download/0.5.5/&quot;&gt;Calendar 0.5.5&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/HTTP_OAuth/download/0.1.16/&quot;&gt;HTTP_OAuth 0.1.16&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/OpenID/download/0.2.0/&quot;&gt;OpenID 0.2.0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Semaine du 5 Juillet 2010&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/Net_IDNA2/download/0.1.0/&quot;&gt;Net_IDNA2 0.1.0&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/Net_IDNA/download/0.8.1/&quot;&gt;Net_IDNA 0.8.1&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/File_IMC/download/0.4.1/&quot;&gt;File_IMC 0.4.1&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/HTTP_OAuth/download/0.1.17/&quot;&gt;HTTP_OAuth 0.1.17&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/Payment_DTA/download/1.4.0a2/&quot;&gt;Payment_DTA 1.4.0a2&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/Net_Sieve/download/1.3.0/&quot;&gt;Net_Sieve 1.3.0&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/Services_Digg2/download/0.2.0/&quot;&gt;Services_Digg2 0.2.0&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/XML_RPC/download/1.5.4/&quot;&gt;XML_RPC 1.5.4&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;Semaine du 12 Juillet 2010&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/DB_DataObject/download/1.9.5/&quot;&gt;DB_DataObject 1.9.5&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/Payment_DTA/download/1.4.0a3/&quot;&gt;Payment_DTA 1.4.0a3&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/Text_Figlet/download/1.0.2/&quot;&gt;Text_Figlet 1.0.2&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
Semaine du 19 Juillet 2010&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0a1/&quot;&gt;PHP_CodeSniffer 1.3.0a1&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Semaine du 26 Juillet 2010&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/HTTP_OAuth/download/0.1.18/&quot;&gt;HTTP_OAuth 0.1.18&lt;/a&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/package/Net_Whois/download/1.0.4/&quot;&gt;Net_Whois 1.0.4&lt;/a&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
PEAR est la biblioth&amp;egrave;que de composants PHP.
&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/&quot; title=&quot;http://pear.php.net&quot; onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;weblink=PEAR&amp;content_id=19453'; return false;&quot;&gt;PEAR&lt;/a&gt;&lt;br /&gt;
&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://pear.php.net/packages.php&quot; title=&quot;http://pear.php.net/packages.php&quot; onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;weblink=Tous+les+paquets+PEAR&amp;content_id=19453'; return false;&quot;&gt;Tous les paquets PEAR&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;/div&gt;</description>
		<pubDate>Tue, 27 Jul 2010 08:23:31 +0200</pubDate>
		<guid>http://www.nexen.net/actualites/pear/19736-actualite_de_developpement_pear,_edition_282.php</guid>
	</item>
		<item>
		<title>PHP: Inner class</title>
		<link>http://feedproxy.google.com/~r/eexit/~3/FBYnpLL1MW0/php-inner-class.html</link>
		<description>Oui oui, c&amp;#8217;est largement possible mais c&amp;#8217;est pas ce qu&amp;#8217;il y a de plus beau. Préférez utiliser le pattern Factory qui lui sera beaucoup plus propre et testable que des inner classes.Mais parfois, créer une inner class peut rendre service justement pour tester une methode typée sans forcément passer par des frameworks de test. Dans [...]&lt;img src=&quot;http://feeds.feedburner.com/~r/eexit/~4/FBYnpLL1MW0&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
		<pubDate>Tue, 27 Jul 2010 14:18:36 +0200</pubDate>
		<guid>http://feedproxy.google.com/~r/eexit/~3/FBYnpLL1MW0/php-inner-class.html</guid>
	</item>
		<item>
		<title>PHP docx 1.5</title>
		<link>http://www.nexen.net/actualites/php/19735-php_docx_1.5.php</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/phpdocx.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt;
PHPdocx est une nouvelle biblioth&amp;egrave;que PHP qui va vous permettre de g&amp;eacute;n&amp;eacute;rer des documents Microsoft Word au format DOCx. &lt;br /&gt;
Pour utiliser cette biblioth&amp;egrave;que, il est important d'avoir les derni&amp;egrave;res versions de PHP.&lt;br /&gt;
Avec la version 1.5, qui est compatible avec PHP 5.3, vous pouvez utiliser les extensions ZIP et XSL pour g&amp;eacute;n&amp;eacute;rer vos documents.&lt;br /&gt;
Avec PHPDOCx, un ensemble de fonctions sont disponibles pour que vous puissiez :&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;G&amp;eacute;n&amp;eacute;rer un texte&lt;/li&gt;
&lt;li&gt;Ajouter des images&lt;/li&gt;
&lt;li&gt;Structurer&lt;/li&gt;
&lt;li&gt;Ajouter des puces&lt;/li&gt;
&lt;li&gt;R&amp;eacute;aliser des tableaux de contenus&lt;/li&gt;
&lt;li&gt;Des en-t&amp;ecirc;tes et des pieds de pages&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;img src= &quot;http://www.nexen.net/nx_media/images/drapeaux/en.png&quot; alt=&quot;en&quot; witdth=&quot;18&quot; height=&quot;12&quot; /&gt;&amp;nbsp;&lt;a href=&quot;http://www.phpdocx.com/&quot; title=&quot;http://www.phpdocx.com/&quot;  onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;amp;weblink=Site+officiel+PHP+docx+1.5&amp;amp;content_id=0'; return false;&quot;  class=&quot;weblink_img&quot;&gt;Site officiel PHP docx 1.5&lt;/a&gt; (0 visite)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
		<pubDate>Mon, 26 Jul 2010 10:17:28 +0200</pubDate>
		<guid>http://www.nexen.net/actualites/php/19735-php_docx_1.5.php</guid>
	</item>
		<item>
		<title>L'avenir de PHP vu par Cyril Pierre de Geyer</title>
		<link>http://blog.mageekbox.net/?post/2010/07/13/L-avenir-de-PHP-vu-par-Cyril-Pierre-de-Geyer</link>
		<description>&lt;p&gt;C'est maintenant au tour de Cyril de se prêter au jeu de l'interview.&lt;/p&gt;
&lt;p&gt;Je le connais depuis longtemps, mais nous n'avons commencé à échanger que récemment, lorsqu'il m'a proposé d'écrire un &lt;a href=&quot;http://blog.mageekbox.net/?post/2010/06/07/Premier-article-dans-Programmez-%21&quot;&gt;article&lt;/a&gt; pour le magazine &lt;a href=&quot;http://www.programmez.com/&quot;&gt;&lt;q&gt;Programmez&lt;/q&gt;&lt;/a&gt; sur l'avenir de PHP.&lt;/p&gt;
&lt;p&gt;Ce qui suit est donc en quelque sorte un retour d?ascenseur.&lt;/p&gt;    &lt;p&gt;Peux-tu te présenter en quelques mots ?

Acteur de l'écosystème du Logiciel Libre et du Web depuis 1999 je suis également co-auteur du livre PHP 5 avancé et j'ai participé à la création de l'AFUP avant d'en être président.
Une partie de mes activités actuelles sont liées aux audits d'optimisation de performances et à l'API odtPHP qui permet de... &lt;em&gt;&lt;a href=&quot;http://blog.mageekbox.net/?post/2010/07/13/L-avenir-de-PHP-vu-par-Cyril-Pierre-de-Geyer&quot;&gt;Lire&lt;/em&gt; L'avenir de PHP vu par Cyril Pierre de Geyer&lt;/a&gt;&lt;/p&gt;</description>
		<pubDate>Mon, 26 Jul 2010 09:00:00 +0200</pubDate>
		<guid>http://blog.mageekbox.net/?post/2010/07/13/L-avenir-de-PHP-vu-par-Cyril-Pierre-de-Geyer</guid>
	</item>
		<item>
		<title>Migration de PHP 5.2 vers PHP 5.3</title>
		<link>http://www.nexen.net/actualites/php/19733-migration_de_php_5.2_vers_php_5.3.php</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/php.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt;
Depuis quelques jours, la version 5.2.14 de PHP est sortie. L'&amp;eacute;quipe qui soutient la version 5.2.x signale que l'activit&amp;eacute; de cette branche est stopp&amp;eacute;e pour privil&amp;eacute;gier la version PHP 5.3.x.&lt;br /&gt;
Bien sur, cette branche est toujours soutenue au niveau de la s&amp;eacute;curit&amp;eacute;.&lt;br /&gt;
Pour vous faciliter la migration vers PHP 5.3, un guide est disponible pour effectuer la proc&amp;eacute;dure &amp;eacute;tape par &amp;eacute;tape.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;img src= &quot;http://www.nexen.net/nx_media/images/drapeaux/en.png&quot; alt=&quot;en&quot; witdth=&quot;18&quot; height=&quot;12&quot; /&gt;&amp;nbsp;&lt;a href=&quot;http://fr.php.net/migration53&quot; title=&quot;http://fr.php.net/migration53&quot;  onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;amp;weblink=Migrating+from+PHP+5.2.x+to+PHP+5.3.x&amp;amp;content_id=0'; return false;&quot;  class=&quot;weblink_img&quot;&gt;Migrating from PHP 5.2.x to PHP 5.3.x&lt;/a&gt; (0 visite)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
		<pubDate>Sun, 25 Jul 2010 11:17:43 +0200</pubDate>
		<guid>http://www.nexen.net/actualites/php/19733-migration_de_php_5.2_vers_php_5.3.php</guid>
	</item>
		<item>
		<title>Les nouveautés de Prestashop</title>
		<link>http://www.nexen.net/actualites/php/19732-les_nouveautes_de_prestashop.php</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/prestashop.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt;
La nouvelle version stable de e-commerce &amp;laquo;&amp;nbsp;PrestaShop&amp;nbsp;&amp;raquo; est disponible, r&amp;eacute;alis&amp;eacute;e en PHP / MySQL.&lt;br /&gt;
Elle apporte de nombreuses nouveaut&amp;eacute;s  comme : &lt;br /&gt;
3 nouveaux axes : &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;
Performances techniques&lt;/li&gt;&lt;li&gt;
Efficacit&amp;eacute; commerciale&lt;/li&gt;&lt;li&gt;
Exp&amp;eacute;rience utilisateur&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
et &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;
15 nouvelles fonctionnalit&amp;eacute;s&lt;/li&gt;&lt;li&gt;
Optimisation au niveau de l'affichage (plus rapide de 30 %)&lt;/li&gt;&lt;li&gt;
Optimisation SQL&lt;/li&gt;&lt;li&gt;
Nouveaux modules de paiement&lt;/li&gt;&lt;li&gt;
Optimisation de la partie Administration&lt;/li&gt;&lt;li&gt;
Am&amp;eacute;lioration du moteur de recherche&lt;/li&gt;&lt;li&gt;
etc&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;img src= &quot;http://www.nexen.net/nx_media/images/drapeaux/en.png&quot; alt=&quot;en&quot; witdth=&quot;18&quot; height=&quot;12&quot; /&gt;&amp;nbsp;&lt;a href=&quot;http://www.prestashop.com/blog/article/prestashop_v13_over_52000_downloads/&quot; title=&quot;http://www.prestashop.com/blog/article/prestashop_v13_over_52000_downloads/&quot;  onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;amp;weblink=PrestaShop+v.1.3%3A+Over+52%2C000+downloads%21&amp;amp;content_id=0'; return false;&quot;  class=&quot;weblink_img&quot;&gt;PrestaShop v.1.3: Over 52,000 downloads!&lt;/a&gt; (0 visite)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
		<pubDate>Sat, 24 Jul 2010 19:23:58 +0200</pubDate>
		<guid>http://www.nexen.net/actualites/php/19732-les_nouveautes_de_prestashop.php</guid>
	</item>
		<item>
		<title>Les nouveautés de Prestashop</title>
		<link>http://www.nexen.net/content/view/19732/165/</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/prestashop.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt;
La nouvelle version stable de e-commerce « PrestaShop » est disponible, réalisée en PHP / MySQL.&lt;br /&gt;
Elle apporte de nombreuses nouveautés  comme : &lt;br /&gt;
3 nouveaux axes : &lt;br /&gt;
Performances techniques&lt;br /&gt;
Efficacité commerciale&lt;br /&gt;
Expérience utilisateur&lt;br /&gt;
et &lt;br /&gt;
15 nouvelles fonctionnalités&lt;br /&gt;
Optimisation au niveau de l'affichage (plus rapide de 30 %)&lt;br /&gt;
Optimisation SQL&lt;br /&gt;
Nouveaux modules de paiements&lt;br /&gt;
Optimisation de la partie Administration&lt;br /&gt;
Amélioration du moteur de recherche&lt;br /&gt;
etc&lt;ul&gt;&lt;li&gt;&lt;img src= &quot;http://www.nexen.net/nx_media/images/drapeaux/en.png&quot; alt=&quot;en&quot; witdth=&quot;18&quot; height=&quot;12&quot; /&gt;&amp;nbsp;&lt;a href=&quot;http://www.prestashop.com/blog/article/prestashop_v13_over_52000_downloads/&quot; title=&quot;http://www.prestashop.com/blog/article/prestashop_v13_over_52000_downloads/&quot;  onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;amp;weblink=PrestaShop+v.1.3%3A+Over+52%2C000+downloads%21&amp;amp;content_id=0'; return false;&quot;  class=&quot;weblink_img&quot;&gt;PrestaShop v.1.3: Over 52,000 downloads!&lt;/a&gt; (0 visite)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
		<pubDate>Sun, 25 Jul 2010 09:23:58 +0200</pubDate>
		<guid>http://www.nexen.net/content/view/19732/165/</guid>
	</item>
		<item>
		<title>Batch : Attention à la mémoire vive et au reste ...</title>
		<link>http://moosh.et.son.brol.be/blog/index.php/2010/07/24/1067-batch-attention-a-la-memoire-vive-et-au-reste</link>
		<description> &lt;p&gt;Olivier Hoareau  nous rappelle de faire &lt;a href=&quot;http://blog.phppro.fr/?post/2010/04/22/Batch-:-Attention-a-la-memoire-vive&quot; hreflang=&quot;fr&quot;&gt;attention à la mémoire vive&lt;/a&gt; dans les batch.&lt;/p&gt;


&lt;p&gt;Je viens juste en remettre un couche par rapport à des petits bugs identifiés récemment dans différentes relecture de vieux code.&lt;/p&gt;


&lt;h3&gt;boucle environementée&lt;/h3&gt;

&lt;p&gt;Il ne faut pas voir un batch comme une application, mais comme un environnement à reseter à chaque itérations.&lt;/p&gt;


&lt;p&gt;C'est à dire que la consommation de vos ressources doivent être le même en fin de chaque loop. Et il ne faut qu'un loop.&lt;/p&gt;


&lt;p&gt;Classiquement  on a  &lt;em&gt;lecture - traitement - écriture.&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;Il faut éviter le réflexe de &quot;tout lire&quot;  -&amp;gt; boucler sur ce qu'on a lu -&amp;gt; &quot;tout écrire&quot;&lt;/p&gt;


&lt;p&gt;Il faut envisager le processus &quot;lecture - traitement - écriture.&quot; au niveau de la ligne.&lt;/p&gt;


&lt;p&gt;Un exemple, avec un fichier CSV à transformer en tableau HTML.&lt;/p&gt;


&lt;p&gt;Premier réflexe, on découpe traitement et affichage.&lt;/p&gt;

&lt;pre&gt;[php]
&amp;lt;?php
 $arrayContenuDuCsv = readCsvFile(); 
 // contient une boucle qui &amp;quot;lit&amp;quot; toutes les lignes
 
$arrayResultat = traitementDesDonnees($arrayContenuDuCsv);
 // contient une boucle effectue les traitements sur chaque ligne

 $stringHtml = arrayToHtmlTable($arrayResultat); 
 // contient une boucle effectue les traitements sur chaque ligne

 // traitement fini, j'affiche
 echo $stringHtml;
&lt;/pre&gt;


&lt;p&gt;le problème c'est que&lt;/p&gt;

&lt;pre&gt;[php]
&amp;lt;?php
 $arrayContenuDuCsv = readCsvFile(); 
 // contient une boucle qui &amp;quot;lit&amp;quot; toutes les lignes
 
 // ici $arrayContenuDuCsv est de taille non maitrisée, dépendant de la taille du fichier

 $arrayResultat = traitementDesDonnees($arrayContenuDuCsv);
 // contient une boucle effectue les traitements sur chaque ligne

 // ici $arrayResultat est de taille non maitrisée, dépendant de la taille du fichier
 // pire, comme on a pas encore fait de &amp;quot;unset&amp;quot; de $arrayContenuDuCsv on a le csv en double en mémoire!!!!

 $stringHtml = arrayToHtmlTable($arrayResultat); 
 // contient une boucle qui éffectue les traitements sur chaque ligne


 //ici $stringHtml est de taille non maitrisée, dépendant de la taille du fichier
 // pire, comme on a pas encore fait de &amp;quot;unset&amp;quot; de $arrayResultat on a le csv en double, 
 // et si on a à faire a un très mauvais codeur, il n'a même pas fait de unset($arrayContenuDuCsv)
 // et on a le fichier en triple

 // traitement fini, j'affiche
 echo $stringHtml;

&lt;/pre&gt;



&lt;p&gt;Il faut  donc  voir l'application au niveau du traitement de la ligne&lt;/p&gt;


&lt;pre&gt;[php]
&amp;lt;?php
 $arrayContenuCsv = readCsvRow(); // &amp;lt;- contient une boucle qui &amp;quot;lit&amp;quot; UNE ligne
 
 //ici $arrayContenuCsv est de taille maitrisée, 1 ligne

 $arrayResultatLigne = traitementDesDonnees($arrayContenuCsv);
 // contient un traitement identique pour chaque ligne

 //ici $arrayResultat est de taille maitrisée, 1 ligne

 $stringHtml = arrayToHtmlRowTable($arrayResultat);  //ici $stringHtml est de taille maitrisée, 1 ligne
 // traitement fini de ligne, j'affiche
 echo $stringHtml;

&lt;/pre&gt;


&lt;p&gt;Bien entendu il faut mettre tout ceci dans une boucle, ajouter le header et le footer de ma table, mais ca reste du traitement unique.&lt;/p&gt;



&lt;h3&gt;Initialiser ses variables.&lt;/h3&gt;


&lt;p&gt;Voici un autre cas de mauvaise écriture que j'ai rencontré.&lt;/p&gt;

&lt;pre&gt;[php]
&amp;lt;?php
$arrayData = array();
$arrListedeListes = getListeDeListe();
foreach ($arrListedeListes as $arrListe )
{
     foreach ($arrListe as $ligne)
     {
           $arrayData[]=getResultatDuTraitementDeLaLigne($ligne);
     }
     $result= ecritureDesDatas($arrayData);
}
&lt;/pre&gt;


&lt;p&gt;Le développeur a vu qu'en faisant cela au deuxième passage le traitement des données incluait le nouvelles mais aussi celle de la passe d'avant.&lt;/p&gt;


&lt;p&gt;Solution appliquée par le développeur&lt;/p&gt;
&lt;pre&gt;[php]
&amp;lt;?php
$arrayData = array();
$arrListedeListes = getListeDeListe();
foreach ($arrListedeListes as $arrListe )
{
     $i=0; // &amp;lt;- il a réinitialisé son compteur
     foreach ($arrListe as $ligne)
     {
           $arrayData[$i]=getResultatDuTraitementDeLaLigne($ligne);
           $i++;
     }
     $result= ecritureDesDatas($arrayData);
}
&lt;/pre&gt;


&lt;p&gt;Très mauvaise idée parce qu'en fait ce n'est qu'une version aussi erronée que la précédente mais en masquant un peu le problème.&lt;/p&gt;


&lt;p&gt;En effet, en écrasant sans effacer la liste précédente, il se fait que dés qu'une liste était plus courte que la précédente, les lignes en surplus était reconsidérées à nouveau.&lt;/p&gt;

&lt;pre&gt;[php]
&amp;lt;?php
$arrListedeListes = getListeDeListe();
foreach ($arrListedeListes as $arrListe )
{
     $arrayData = array();

     foreach ($arrListe as $ligne)
     {
           $arrayData[$i]=getResultatDuTraitementDeLaLigne($ligne);
           
     }
     $result= ecritureDesDatas($arrayData);
}
&lt;/pre&gt;


&lt;h4&gt;Autres  outils&lt;/h4&gt;


&lt;p&gt;Avec Zend_Framework il existe un outil qui permet de gérer le traitement gourmands en entrée et surtout en sortie  c'est &lt;a href=&quot;http://framework.zend.com/manual/fr/zend.memory.memory-manager.html&quot; hreflang=&quot;fr&quot;&gt;Zend_Memory&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Il va permettre de gérer des grosses entités de données en plaçant hors de la mémoire vive ce qu'on n'utilise pas.&lt;/p&gt;


&lt;p&gt;Il place l'inutilisé dans un des &lt;a href=&quot;http://framework.zend.com/manual/fr/zend.cache.backends.html&quot; hreflang=&quot;fr&quot;&gt;backends Zend_Cache&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Pensez aussi à lire l'article d'Olivier Hoareau&amp;nbsp;: &lt;a href=&quot;http://blog.phppro.fr/?post/2010/04/22/Batch-:-Attention-a-la-memoire-vive&quot; hreflang=&quot;fr&quot;&gt;attention à la mémoire vive&lt;/a&gt;.&lt;/p&gt;</description>
		<pubDate>Sat, 24 Jul 2010 07:00:00 +0200</pubDate>
		<guid>http://moosh.et.son.brol.be/blog/index.php/2010/07/24/1067-batch-attention-a-la-memoire-vive-et-au-reste</guid>
	</item>
		<item>
		<title>PHP 5.3.3 / 5.2.14: fin du support de 5.2</title>
		<link>http://blog.developpez.com/julienpauli/p9144/php/php-5-3-3-5-2-14-fin-du-support-de-5-2/</link>
		<description>&lt;p&gt;PHP 5.3.3 vient de sortir, avec une nouveaut&amp;#233; sympa &amp;#224; mon gout que j'attendais (ainsi que bcp d'admins) depuis des lustres : PHP-FPM.&lt;/p&gt;

&lt;p&gt;PHP-FPM est une nouvelle SAPI pour FastCGI (diff&amp;#233;rente de php-fcgi) qui apporte son lot de nouveaut&amp;#233;s (toutes d&amp;#233;crites en doc).&lt;/p&gt;

&lt;p&gt;Une autre nouvelle aussi est la fin du support officiel pour la branche 5.2 de PHP.&lt;br /&gt;
Vous &amp;#234;tes encourag&amp;#233;s &amp;#224; migrer vers 5.3 car les futurs bugs de PHP 5.2 ne seront plus corrig&amp;#233;s quant &amp;#224; ceux de s&amp;#233;curit&amp;#233; &amp;#231;a sera du cas par cas.&lt;br /&gt;
Quand on voit la puissance de 5.3 en rapport &amp;#224; 5.2... Reste l'&amp;#233;ventuelle migration de l'existant, certes...&lt;/p&gt;

&lt;p&gt;Un prochain article sur PHP-FPM possible :-)&lt;/p&gt;		&lt;div style='font-size:0.8em'&gt;&lt;a href='http://blog.developpez.com/julienpauli/p9144/php/php-5-3-3-5-2-14-fin-du-support-de-5-2/' title=''&gt;Billet original&lt;/a&gt; publi&amp;eacute; sur les &lt;a href='http://blog.developpez.com' title='Blogs des developpeurs' hreflang='fr'&gt;blogs de developpez.com&lt;/a&gt;...&lt;/div&gt;
		</description>
		<pubDate>Fri, 23 Jul 2010 16:08:05 +0200</pubDate>
		<guid>http://blog.developpez.com/julienpauli/p9144/php/php-5-3-3-5-2-14-fin-du-support-de-5-2/</guid>
	</item>
		<item>
		<title>PHP 5.3.3 et PHP 5.2.14</title>
		<link>http://www.nexen.net/actualites/php/19731-php_5.3.3_et_php_5.2.4.php</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/php.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt;
2 nouvelles versions de PHP viennent de sortir.&lt;br /&gt;
La version PHP 5.3.3 propose de nombreux correctifs mais aussi la mise &amp;agrave; jour des extensions SQLite et PCRE&lt;br /&gt;
La version PHP 5.2.14 propose aussi de nombreux correctifs et la mise &amp;agrave; jour de l'extension PCRE&lt;br /&gt;
Ces 2 versions sont bien s&amp;ucirc;r &amp;agrave; installer&lt;ul&gt;&lt;li&gt;&lt;img src= &quot;http://www.nexen.net/nx_media/images/drapeaux/en.png&quot; alt=&quot;en&quot; witdth=&quot;18&quot; height=&quot;12&quot; /&gt;&amp;nbsp;&lt;a href=&quot;http://www.php.net/ChangeLog-5.php&quot; title=&quot;http://www.php.net/ChangeLog-5.php&quot;  onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;amp;weblink=Liste+des+modifications+pour+PHP+5.3.3&amp;amp;content_id=0'; return false;&quot;  class=&quot;weblink_img&quot;&gt;Liste des modifications pour PHP 5.3.3&lt;/a&gt; (0 visite)&lt;/li&gt;&lt;li&gt;&lt;img src= &quot;http://www.nexen.net/nx_media/images/drapeaux/en.png&quot; alt=&quot;en&quot; witdth=&quot;18&quot; height=&quot;12&quot; /&gt;&amp;nbsp;&lt;a href=&quot;http://www.php.net/ChangeLog-5.php&quot; title=&quot;http://www.php.net/ChangeLog-5.php&quot;  onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;amp;weblink=Liste+des+modifications+pour+PHP+5.2.4&amp;amp;content_id=0'; return false;&quot;  class=&quot;weblink_img&quot;&gt;Liste des modifications pour PHP 5.2.14&lt;/a&gt; (0 visite)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
		<pubDate>Fri, 23 Jul 2010 06:11:31 +0200</pubDate>
		<guid>http://www.nexen.net/actualites/php/19731-php_5.3.3_et_php_5.2.4.php</guid>
	</item>
		<item>
		<title>PHP: Décrypter des fichiers encryptés par SourceCop</title>
		<link>http://feedproxy.google.com/~r/eexit/~3/sAYzCvZ0BdI/php-decrypter-des-fichiers-encryptes-par-sourcecop.html</link>
		<description>Ok, rien de bien nouveau puisque la nouvelle est déjà assez répandue. Je ne ferais que confirmer que cette technique fonctionne encore très bien puisque que pas mal d&amp;#8217;applications (genre jqGrid) &amp;#171;&amp;#160;protègent&amp;#160;&amp;#187; encore leur source. Je me suis inspiré de cet article pour écrire le miens sauf que je vais outre-passer les explications, je me [...]&lt;img src=&quot;http://feeds.feedburner.com/~r/eexit/~4/sAYzCvZ0BdI&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
		<pubDate>Thu, 22 Jul 2010 16:04:21 +0200</pubDate>
		<guid>http://feedproxy.google.com/~r/eexit/~3/sAYzCvZ0BdI/php-decrypter-des-fichiers-encryptes-par-sourcecop.html</guid>
	</item>
		<item>
		<title>PHP commit Hooks</title>
		<link>http://www.nexen.net/actualites/php/19729-php_commit_hooks.php</link>
		<description>&lt;div class=&quot;content_header_img&quot;&gt;
					&lt;img alt=&quot;Image pour le titre du contenu&quot; src=&quot;http://www.nexen.net/images/stories/biseau/table.png&quot;&gt;
				    &lt;/div&gt;&lt;div class=&quot;blogcontent&quot;&gt;
PHP commit Hooks est une application r&amp;eacute;alis&amp;eacute;e en PHP, vous permettant d'avoir un d&amp;eacute;veloppement avec des num&amp;eacute;ros de versions comme un versionning.&lt;br /&gt;
Vos dossiers et fichiers PHP seront alors repr&amp;eacute;sent&amp;eacute;s avec des crochets pour vous permettre d'avoir une conception simple et structur&amp;eacute;e.&lt;br /&gt;
Cette application propose par ailleurs les m&amp;ecirc;mes fonctionnalit&amp;eacute;s qu'un SVN comme laisser un message d'information...&lt;ul&gt;&lt;li&gt;&lt;img src= &quot;http://www.nexen.net/nx_media/images/drapeaux/en.png&quot; alt=&quot;en&quot; witdth=&quot;18&quot; height=&quot;12&quot; /&gt;&amp;nbsp;&lt;a href=&quot;http://qafoo.com/blog/002_presenting_php_commit_hooks.html&quot; title=&quot;http://qafoo.com/blog/002_presenting_php_commit_hooks.html&quot;  onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;amp;weblink=Presentation+de+PHP+commit+Hooks&amp;amp;content_id=0'; return false;&quot;  class=&quot;weblink_img&quot;&gt;Pr&amp;eacute;sentation de PHP commit Hooks&lt;/a&gt; (0 visite)&lt;/li&gt;&lt;li&gt;&lt;img src= &quot;http://www.nexen.net/nx_media/images/drapeaux/en.png&quot; alt=&quot;en&quot; witdth=&quot;18&quot; height=&quot;12&quot; /&gt;&amp;nbsp;&lt;a href=&quot;http://github.com/kore/php-commit-hooks&quot; title=&quot;http://github.com/kore/php-commit-hooks&quot;  onclick=&quot;window.location.href='http://www.nexen.net/index.php?option=com_nx_weblink&amp;amp;weblink=Le+projet+PHP+Commit+Hooks&amp;amp;content_id=0'; return false;&quot;  class=&quot;weblink_img&quot;&gt;Le projet PHP Commit Hooks&lt;/a&gt; (0 visite)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
		<pubDate>Wed, 21 Jul 2010 21:53:05 +0200</pubDate>
		<guid>http://www.nexen.net/actualites/php/19729-php_commit_hooks.php</guid>
	</item>
	</channel>
</rss>