<?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>PHP - TechnoFrame &#187; PHP</title>
	<atom:link href="http://www.netfulvpc.fr/phptechnoframe/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.netfulvpc.fr/phptechnoframe</link>
	<description>Le Blog des Technologies PHP</description>
	<lastBuildDate>Tue, 25 Jan 2011 11:28:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CodeIgniter v1.7.2 !!!</title>
		<link>http://www.netfulvpc.fr/phptechnoframe/actus/codeigniter-v1-7-2/</link>
		<comments>http://www.netfulvpc.fr/phptechnoframe/actus/codeigniter-v1-7-2/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 18:42:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[PHP]]></category>
<category>CodeIgniter</category><category>PHP</category>
		<guid isPermaLink="false">http://www.netfulvpc.fr/phptechnoframe/?p=91</guid>
		<description><![CDATA[La nouvelle version 1.7.2 de CodeIgniter est sortie !!!
Totalement compatible avec PHP 5.3.0.
Elle apporte un certain nombre de nouvelles fonctionnalités&#8230;

Ajout d&#8217;une Classe Caddie;
Amélioration du Helper Form;
Ajout dans les fonctions communes de is_php() pour faciliter la comparaison des versions de PHP
show_error() modifié pour permettre la récupération du code réponse des servers HTTP, et toutes les utilisations [...]]]></description>
			<content:encoded><![CDATA[<p>La nouvelle version <strong><span style="color: #ff0000;">1.7.2</span></strong> de <strong><span style="color: #ff6600;">CodeIgniter</span> </strong>est sortie !!!<br />
Totalement compatible avec PHP 5.3.0.</p>
<p>Elle apporte un certain nombre de nouvelles fonctionnalités&#8230;<span id="more-91"></span></p>
<ul>
<li>Ajout d&#8217;une Classe Caddie;</li>
<li>Amélioration du Helper Form;</li>
<li>Ajout dans les <a href="http://codeigniter.com/user_guide/general/common_functions.html" target="_blank">fonctions communes</a> de <strong><span style="color: #ff6600;">is_php()</span></strong> pour faciliter la comparaison des versions de PHP</li>
<li><a href="http://codeigniter.com/user_guide/general/errors.html">show_error()</a> modifié pour permettre la récupération du code réponse des servers HTTP, et toutes les utilisations internes envoient maintenant un bode statu correct.</li>
<li>Plus un grand nombres d&#8217;autres petits bugs corrigés.</li>
</ul>
<br /><strong>Tags:</strong> <a href="http://www.netfulvpc.fr/phptechnoframe/tag/CodeIgniter" title="Naviguer dans CodeIgniter" rel="tag">CodeIgniter</a>|<a href="http://www.netfulvpc.fr/phptechnoframe/tag/PHP" title="Naviguer dans PHP" rel="tag">PHP</a>]]></content:encoded>
			<wfw:commentRss>http://www.netfulvpc.fr/phptechnoframe/actus/codeigniter-v1-7-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yii &#8211; framework</title>
		<link>http://www.netfulvpc.fr/phptechnoframe/actus/yii-framework/</link>
		<comments>http://www.netfulvpc.fr/phptechnoframe/actus/yii-framework/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 09:29:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Actus]]></category>
		<category><![CDATA[Développements]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Yii]]></category>
		<category><![CDATA[Zend]]></category>
<category>CodeIgniter</category><category>Frameworks</category><category>PHP</category><category>Symfony</category><category>Yii</category><category>Zend</category>
		<guid isPermaLink="false">http://www.netfulvpc.fr/phptechnoframe/actus/yii-framework</guid>
		<description><![CDATA[En décembre 2008, un nouveau framework sortait en version 1.0.0. Il s&#8217;agissait de Yii. Il en est aujourd&#8217;hui à la version 1.0.7 (5 juillet 2009).

Ce framework avance plusieurs arguments qui en font un concurrent sérieux de Zend, Symfony, CodeIgniter, RoR et consors et publie un comparatif face à ces derniers. Il serait le plus rapide [...]]]></description>
			<content:encoded><![CDATA[<p>En décembre 2008, un nouveau framework sortait en version <strong>1.0.0</strong>. Il s&#8217;agissait de Yii. Il en est aujourd&#8217;hui à la version <strong>1.0.7</strong> (5 juillet 2009).</p>
<p><span id="more-50"></span></p>
<p>Ce framework avance plusieurs arguments qui en font un concurrent sérieux de Zend, Symfony, CodeIgniter, RoR et consors et publie un <a title="Performance de Yii" href="http://www.yiiframework.com/performance/">comparatif</a> face à ces derniers. Il serait le plus rapide de tous et notamment avec un APC cache !!!</p>
<ul>
<li><strong>Yii</strong>: 673 requests/second</li>
<li><strong>CodeIgniter</strong>: 206 requests/second</li>
<li><strong>Zend</strong>: 83 requests/second</li>
<li><strong>CakePHP</strong>: 79 requests/second</li>
<li><strong>Prado</strong>: 75 requests/second</li>
<li><strong>Symfony</strong>: 50 requests/second</li>
</ul>
<p>La liste des <a title="Fonctionnalités" href="http://www.yiiframework.com/features/">fonctionnalités</a> offertes est impressionnante. Leur leitmotif est : easy, efficient and extensible.</p>
<p>Yii intègre nombre d&#8217;idées et de concepts des frameworks de programmation (Prado, Ruby on Rails et Symfony, JQuery) et d&#8217;applications (Joomla) bien connus.</p>
<p>Il est accompagné d&#8217;une documentation en plusieurs langues et de nombreux tutoriaux .</p>
<p>Gageons qu&#8217;il va rapidement faire de l&#8217;ombre à ses copains qui évoluent plus ou moins lentement&#8230;d&#8217;un autre côté, il est plus facile de reprendre les bonnes idées de chacun pour créer un nouveau produit&#8230;mais c&#8217;est souvent ce qui dans la théorie de la concurrence fait qu&#8217;un outsider devient ensuite un leader (un peu comme les japonais des années 70 !!!)</p>
<br /><strong>Tags:</strong> <a href="http://www.netfulvpc.fr/phptechnoframe/tag/CodeIgniter" title="Naviguer dans CodeIgniter" rel="tag">CodeIgniter</a>|<a href="http://www.netfulvpc.fr/phptechnoframe/tag/Frameworks" title="Naviguer dans Frameworks" rel="tag">Frameworks</a>|<a href="http://www.netfulvpc.fr/phptechnoframe/tag/PHP" title="Naviguer dans PHP" rel="tag">PHP</a>|<a href="http://www.netfulvpc.fr/phptechnoframe/tag/Symfony" title="Naviguer dans Symfony" rel="tag">Symfony</a>|<a href="http://www.netfulvpc.fr/phptechnoframe/tag/Yii" title="Naviguer dans Yii" rel="tag">Yii</a>|<a href="http://www.netfulvpc.fr/phptechnoframe/tag/Zend" title="Naviguer dans Zend" rel="tag">Zend</a>]]></content:encoded>
			<wfw:commentRss>http://www.netfulvpc.fr/phptechnoframe/actus/yii-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Xampp 1.7 &amp; PDO</title>
		<link>http://www.netfulvpc.fr/phptechnoframe/trucs-et-astuces/xampp-17/</link>
		<comments>http://www.netfulvpc.fr/phptechnoframe/trucs-et-astuces/xampp-17/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 11:26:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Trucs et Astuces]]></category>
		<category><![CDATA[PDO]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XAMPP]]></category>
<category>Magento</category><category>MYSQL</category><category>PHP</category><category>Symfony</category>
		<guid isPermaLink="false">http://www.netfulvpc.fr/phptechnoframe/trucs-et-astuces/xampp-17</guid>
		<description><![CDATA[Je suis un inconditionnel de Xampp (kit d&#8217;installation d&#8217;Apache qui contient MySQL, PHP et Perl) sous windows.
Lors de l&#8217;installation de la dernière version 1.7.0 j&#8217;ai été confronté à un problème lors de l&#8217;utilisation de Magento et Symfony. 
En effet, ils utilisent tous les deux la couche d&#8217;accès aux données PDO et la dll livrée de base avec [...]]]></description>
			<content:encoded><![CDATA[<p><span class="Apple-style-span" style="font-family: Tahoma; font-size: 12px">Je suis un inconditionnel de <a href="http://www.apachefriends.org/fr/xampp.html" target="_blank">Xampp </a>(kit d&#8217;installation d&#8217;Apache qui contient MySQL, PHP et Perl) sous windows.</span></p>
<p style="line-height: 15.6pt; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: white"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">Lors de l&#8217;installation de la dernière <a href="http://www.apachefriends.org/fr/xampp-windows.html" target="_blank">version 1.7.0</a> j&#8217;ai été confronté à un problème lors de l&#8217;utilisation de Magento et Symfony. </span></p>
<p style="line-height: 15.6pt; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: white"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">En effet, ils utilisent tous les deux la couche d&#8217;accès aux données PDO et la dll livrée de base avec Xampp </span><span class="apple-style-span"><strong><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: red">libmysql.dll </span></strong></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">provoque un plantage.</span></span></p>
<p style="line-height: 15.6pt; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: white"><span class="apple-style-span"><strong><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">J<span>e vous propose de télécharger</span></span></strong></span><span class="apple-converted-space"><strong><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: #666666"> </span></strong></span><span class="apple-style-span"><strong><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: red">libmysql.dll </span></strong></span><span class="apple-style-span"><strong><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: #666666">(800 ko) </span></strong></span><span class="apple-style-span"><strong><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">sur mon site</span></strong></span><span class="apple-style-span"><strong><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: #666666"> <a href="http://www.netfulvpc.fr/files/libmysql_dll.zip"><span style="color: #2e4b96; font-weight: normal; text-decoration: none">libmysql_dll.zip</span></a></span></strong></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">.</span></span></p>
<p style="line-height: 15.6pt; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: white"><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">Une fois téléchargé, dézippée, récupérer le fichier</span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: #666666"> </span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: red">libmysql.dll</span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: #666666"> </span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">que vous allez copier à 3 endroits :</span></span></p>
<p style="line-height: 15.6pt; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: white"><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">- dans <strong>xampp\apache\bin</strong></span></span></p>
<p style="line-height: 15.6pt; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: white"><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">- dans <strong>xampp\php</strong></span></span></p>
<p style="line-height: 15.6pt; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: white"><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">- et dans <strong>windows\system32</strong></span></span></p>
<p style="line-height: 15.6pt; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: white"><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">ps : avant toute copie renommer le fichier</span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: #666666"> </span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: red">libmysql.dll</span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: #666666"> </span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">présent dans chaque répertoire en</span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: #666666"> </span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: blue">libmysql.dll_</span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: #666666"> </span></span><span class="apple-style-span"><span style="font-size: 9pt; font-family: Tahoma, sans-serif; color: black">ce qui vous permettra le cas échéant de revenir en arrière.Redémarrer XAMPP, Apache et MySql. </span></span></p>
<p><span class="apple-style-span"><span style="font-size: 9pt; line-height: 115%; font-family: Tahoma, sans-serif; color: black">Vos applicati</span><span style="font-size: 9pt; line-height: 115%; font-family: Tahoma, sans-serif; color: black">ons utilisant PDO devrait maintenant parfaitement fonctionner !!! </span></span></p>
<br /><strong>Tags:</strong> <a href="http://www.netfulvpc.fr/phptechnoframe/tag/Magento" title="Naviguer dans Magento" rel="tag">Magento</a>|<a href="http://www.netfulvpc.fr/phptechnoframe/tag/MYSQL" title="Naviguer dans MYSQL" rel="tag">MYSQL</a>|<a href="http://www.netfulvpc.fr/phptechnoframe/tag/PHP" title="Naviguer dans PHP" rel="tag">PHP</a>|<a href="http://www.netfulvpc.fr/phptechnoframe/tag/Symfony" title="Naviguer dans Symfony" rel="tag">Symfony</a>]]></content:encoded>
			<wfw:commentRss>http://www.netfulvpc.fr/phptechnoframe/trucs-et-astuces/xampp-17/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>OPTIMISER PHP &amp; MYSQL</title>
		<link>http://www.netfulvpc.fr/phptechnoframe/etudes/optimiser-php-mysql/</link>
		<comments>http://www.netfulvpc.fr/phptechnoframe/etudes/optimiser-php-mysql/#comments</comments>
		<pubDate>Fri, 21 Sep 2007 14:13:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Etudes]]></category>
		<category><![CDATA[Trucs et Astuces]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[PHP]]></category>
<category>MYSQL</category><category>PHP</category>
		<guid isPermaLink="false">http://www.netfulvpc.fr/phptechnoframe/trucs-et-astuces/optimiser-php-mysql</guid>
		<description><![CDATA[RASMUS LERDORF, le créateur de PHP, nous gratifie d&#8217;un SlideShow (uniquement visible sous FIREFOX ou SAFARI) qui nous explique comment optimiser les développements en PHP/MySql afin de diminuer les coûts d&#8217;infrastructure et le fameux T.C.O (coût de possession du matériel informatique : Total Cost of Ownership in english).
Il part d&#8217;un exemple simple : Un site [...]]]></description>
			<content:encoded><![CDATA[<p>RASMUS LERDORF, le créateur de PHP, nous gratifie d&#8217;un <strong><a title="Faire des économies" href="http://talks.php.net/show/phpuk07/6" target="_blank">SlideShow</a></strong> (uniquement visible sous FIREFOX ou SAFARI) qui nous explique comment optimiser les développements en PHP/MySql afin de diminuer les coûts d&#8217;infrastructure et le fameux <strong>T.C.O</strong> (coût de possession du matériel informatique : Total Cost of Ownership in english).</p>
<p>Il part d&#8217;un exemple simple : Un site de 500.000 utilisateurs faisant une moyenne quotidienne de 100 requêtes.<br />
Ce qui donne 578 requêtes par secondes, multiplié par 3 du fait que le traffic ne pas également distribué sur une journée, soit à peu près 1700 requêtes par seconde à gérer.<span id="more-19"></span>Après analyse de l&#8217;infrastructure intiale et d&#8217;un codage simple de quelques pages et quelques includes, le benchmark de cette petite application utilisée par <strong>500.000 utilisateurs</strong> nécessite <strong>100 serveurs</strong> (il ne traite que 17 requêtes par seconde).</p>
<p>Il enlève dans le fichier Postgresql.conf  l&#8217;appel à SSL;  Résultat  : on passe à <strong>108 </strong>requêtes par seconde. Il faut encore une vingtaine de serveurs</p>
<p>Ensuite c&#8217;est le temps d&#8217;accès à la base de données qui prend 10% du temps global, on met donc en place les connections persistentes.<br />
Résultat  : on passe à <strong>339 requêtes</strong> par seconde et il ne faut plus que <strong>5 serveurs</strong>.</p>
<p align="left">Puis on passe de :<code><span style="color: #000000"><span style="color: #dd0000">'db_opts' </span><span style="color: #007700">=&gt; array(</span><span style="color: #0000bb">PDO</span><span style="color: #007700">::</span><span style="color: #0000bb">ERRMODE_EXCEPTION </span><span style="color: #007700">=&gt; </span><span style="color: #0000bb">true</span><span style="color: #007700">, </span><span style="color: #0000bb"> PDO</span><span style="color: #007700">::</span><span style="color: #0000bb">ATTR_PERSISTENT </span><span style="color: #007700">=&gt; </span><span style="color: #0000bb">true</span><span style="color: #007700">)</span></span></code><br />
à<br />
<code><span style="color: #000000"><span style="color: #dd0000">'db_opts' </span><span style="color: #007700">=&gt; array(</span><span style="color: #0000bb">PDO</span><span style="color: #007700">::</span><span style="color: #0000bb">ERRMODE_EXCEPTION </span><span style="color: #007700">=&gt; </span><span style="color: #0000bb">true</span><span style="color: #007700">,<br />
</span><span style="color: #0000bb">PDO</span><span style="color: #007700">::</span><span style="color: #0000bb">ATTR_PERSISTENT </span><span style="color: #007700">=&gt; </span><span style="color: #0000bb">true</span><span style="color: #007700">,<br />
</span><strong><span style="color: #0000bb">PDO</span><span style="color: #007700">::</span><span style="color: #0000bb">ATTR_EMULATE_PREPARES</span><span style="color: #007700">=&gt;</span><span style="color: #0000bb">true</span></strong><span style="color: #007700">)</span></span></code></p>
<p>Le passage de Query en accès par les API Prepare/Execute de MySQLà des accès directs permet de monter à un traitement par le serveur de <strong>580 requêtes</strong> par seconde et il ne faut plus que <strong>3 serveurs</strong>. Les tables MyIsam ou InnoDb procurent les mêmes chiffres, et Sqlite3 est un peu moins performant mais pas beaucoup plus (550 requêtes/secondes).</p>
<p>La mise en place d&#8217;un gestionnaire de cache comme APC donne<strong> 805 requêtes</strong>/secondes. La Gestion de cache se satisfait mal des appels fréquent à des include_once ou require_once.  On les remplace par des REQUIRE simples. Résultat  : <strong>875 requêtes</strong> par seconde.</p>
<p>L&#8217;optimisation dans le php.ini d&#8217;APC, et l&#8217;ajout d&#8217;une instruction sous &#8216;db_opts&#8217; égale à <code><span style="color: #000000"><span style="color: #dd0000">'path' </span><span style="color: #007700">=&gt; </span><span style="color: #0000bb">getcwd</span><span style="color: #007700">()</span></span></code><br />
et quelque modification dans le code de l&#8217;application pour prendre en compte ces paramètres, nous amène à <strong>885  requêtes</strong> par seconde, soit 2 serveurs.</p>
<p>APC permet aussi de configurer le stockage des variables PHP en mémoire partagée. Résultat  : <strong>890 requêtes</strong> par seconde.<br />
Si l&#8217;on pousse un peu, on peut aussi stocker les résultats des requêtes à la base de données pendant 5 minutes en cache. Résultat  : <strong>1080 requêtes</strong> par seconde.</p>
<p>Enfin le remplacement des &laquo;&nbsp;includes&nbsp;&raquo;, l&#8217;ajout de  fonctions et la suppression de certains &laquo;&nbsp;Require&nbsp;&raquo;, nous amène à  1100 requêtes par seconde.<br />
Nous n&#8217;atteignons pas les 1700 requêtes par seconde nécessaires au traitement des consultations par les internautes, mais nous y sommes presque. <span style="color: #ff6600;"><strong><br />
On est passé de 100 à 2 serveurs : Que d&#8217;économies associées !!!</strong></span></p>
<br /><strong>Tags:</strong> <a href="http://www.netfulvpc.fr/phptechnoframe/tag/MYSQL" title="Naviguer dans MYSQL" rel="tag">MYSQL</a>|<a href="http://www.netfulvpc.fr/phptechnoframe/tag/PHP" title="Naviguer dans PHP" rel="tag">PHP</a>]]></content:encoded>
			<wfw:commentRss>http://www.netfulvpc.fr/phptechnoframe/etudes/optimiser-php-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

