<?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>Webinside - Blog d'Hervé Delvaux &#187; Tuto Zend Framework</title>
	<atom:link href="http://www.webinside.be/category/tutorial/zend-framework-tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webinside.be</link>
	<description></description>
	<lastBuildDate>Fri, 03 Sep 2010 08:52:35 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Zend Framework : reCAPTCHA dans un formulaire</title>
		<link>http://www.webinside.be/zend-framework-recaptcha-dans-un-formulaire/</link>
		<comments>http://www.webinside.be/zend-framework-recaptcha-dans-un-formulaire/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 10:46:16 +0000</pubDate>
		<dc:creator>Hervé</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Php / mySql]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Tuto Zend Framework]]></category>
		<category><![CDATA[formulaire]]></category>
		<category><![CDATA[reCaptcha]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Zend_Form]]></category>

		<guid isPermaLink="false">http://www.webinside.be/?p=343</guid>
		<description><![CDATA[Pour protéger ses formulaires contre le bot, spammer etc&#8230;, on utilise un captcha. Ce système permet de différencier de manière automatisée un utilisateur humain d&#8217;un ordinateur. Nous allons utiliser Zend_Service_ReCaptcha qui fournit un client pour le Service Web reCAPTCHA. Qu&#8217;est ce que reCAPTCHA ? reCAPTCHA est un système mettant à profit les capacités de reconnaissance [...]]]></description>
			<content:encoded><![CDATA[<p>Pour protéger ses formulaires contre le bot, spammer etc&#8230;, on utilise un captcha. Ce système permet de différencier de manière automatisée un utilisateur humain d&#8217;un ordinateur.</p>
<p>Nous allons utiliser <em>Zend_Service_ReCaptcha</em> qui fournit un client pour le <a href="http://recaptcha.net/">Service Web reCAPTCHA</a>.</p>
<p><strong>Qu&#8217;est ce que reCAPTCHA ?</strong></p>
<blockquote><p><img class="alignright size-full wp-image-357" style="margin: 8px;" title="recaptcha-example" src="http://www.webinside.be/wp-content/uploads/2009/01/recaptcha-example.gif" alt="recaptcha-example" width="314" height="125" /><br />
reCAPTCHA est un système mettant à profit les capacités de reconnaissance des utilisateurs humains mobilisées par les tests Captcha, pour améliorer par la même occasion le processus de numérisation de livres, là où échouent les systèmes de reconnaissance optique de caractères (OCR).</p>
<p>L&#8217;idée est de rendre utile une tâche qui peut sembler rébarbative. La technique tient du crowdsourcing.</p>
<p>Concrètement, par rapport à un processus habituel d&#8217;authentification par Captcha, ce ne sont pas un mais deux mots qui sont présentés à l&#8217;utilisateur. L&#8217;un d&#8217;eux est un Captcha habituel, dont la solution est par conséquent connue de manière certaine ; seul l&#8217;autre est issu de la numérisation d&#8217;un livre : c&#8217;est celui dont la solution est incertaine voire inconnue et que l&#8217;utilisateur va aider à résoudre.</p>
<p>Le système part du principe que si les utilisateurs résolvent correctement le Captcha habituel, alors ils ont aussi déchiffré correctement le mot inconnu. Néanmoins, un mot n&#8217;est considéré comme vraiment reconnu que si plusieurs utilisateurs l&#8217;ont vérifié en obtenant le même résultat.</p></blockquote>
<p><strong>Source</strong> : <a href="http://fr.wikipedia.org/wiki/ReCAPTCHA">Wikipedia</a></p>
<p><span id="more-343"></span></p>
<p>Pour utiliser le service reCAPTCHA, vous devez <a href="https://admin.recaptcha.net/accounts/signup/?next=">créer un compte</a> et enregistrer un ou plusieurs domaines d&#8217;utilisation afin de générer une clé publique et une privée.</p>
<p><strong>Utilisation de reCAPTCHA dans un Zend_Form</strong> :</p>

<div class="wp_codebox"><table><tr id="p3432"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code" id="p343code2"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> My_Form <span style="color: #000000; font-weight: bold;">extends</span> Zend_Form
<span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> init<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">//...</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Captcha</span>
		<span style="color: #000088;">$pubKey</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'VOTRE_CLE_PUBLIC'</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$privKey</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'VOTRE_CLE_PRIVEE'</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$recaptcha</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Service_ReCaptcha<span style="color: #009900;">&#40;</span><span style="color: #000088;">$pubKey</span><span style="color: #339933;">,</span> <span style="color: #000088;">$privKey</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$adapter</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Captcha_ReCaptcha<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$adapter</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>setService<span style="color: #009900;">&#40;</span><span style="color: #000088;">$recaptcha</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$captcha</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Form_Element_Captcha<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'recaptcha'</span><span style="color: #339933;">,</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'label'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #0000ff;">&quot;Anti-spam&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'captcha'</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #000088;">$adapter</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>addElement<span style="color: #009900;">&#40;</span><span style="color: #000088;">$captcha</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">//...</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><em>Notes</em> : N&#8217;oubliez pas de changer VOTRE_CLE_PUBLIC et VOTRE_CLE_PRIVEE par celles fournie par reCAPTCHA.</p>
<p>Pour plus de détails concernant l&#8217;utilisation de formulaire, reCAPTCHA,&#8230; je vous invite à consulter la documentation de Zend Framework :</p>
<ul>
<li><a href="http://framework.zend.com/manual/fr/zend.captcha.adapters.html#zend.captcha.adapters.recaptcha"> Zend_Captcha_ReCaptcha</a></li>
<li><a href="http://framework.zend.com/manual/fr/zend.form.standardElements.html#zend.form.standardElements.captcha">Zend_Form_Element_Captcha</a></li>
<li><a href="http://framework.zend.com/manual/fr/zend.service.recaptcha.html">Zend_Service_Recaptcha</a></li>
<li><a href="http://framework.zend.com/manual/fr/zend.form.html">Zend_Form</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webinside.be/zend-framework-recaptcha-dans-un-formulaire/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Transactions dans SGBD à l&#8217;aide de Zend Framework</title>
		<link>http://www.webinside.be/transactions-dans-sgbd-a-laide-de-zend-framework/</link>
		<comments>http://www.webinside.be/transactions-dans-sgbd-a-laide-de-zend-framework/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 15:22:34 +0000</pubDate>
		<dc:creator>Hervé</dc:creator>
				<category><![CDATA[Tuto MySQL]]></category>
		<category><![CDATA[Tuto Php]]></category>
		<category><![CDATA[Tuto Zend Framework]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[transaction]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.webinside.be/?p=153</guid>
		<description><![CDATA[Ce petit tutorial qui concerne les transactions à l&#8217;aide de Zend Framework est basé sur les versions suivante : MySQL 5 Php 5 Zend Framework 1.5.2 Les transactions dans une base de données Les bases de données définissent les transactions comme étant des unités logiques de travail qui peuvent êtres validées (commited) ou annulées (rolled [...]]]></description>
			<content:encoded><![CDATA[<p>Ce petit tutorial qui concerne les transactions à l&#8217;aide de Zend Framework est basé sur les versions suivante :</p>
<ul>
<li><a href="http://www.mysql.fr/">MySQL 5</a></li>
<li><a href="http://www.php.net/">Php 5</a></li>
<li><a href="http://framework.zend.com/manual/fr">Zend Framework 1.5.2</a></li>
</ul>
<p><strong>Les transactions dans une base de données</strong></p>
<blockquote><p>Les bases de données définissent les transactions comme étant des unités logiques de travail qui peuvent êtres validées (commited) ou annulées (rolled back) en tant qu&#8217;une seule opération, même sur de multiples tables. Toutes les requêtes aux bases de données sont considérées comme faisant partie d&#8217;une transaction, même si le driver de base de données fait ceci implicitement. Ceci s&#8217;appelle le mode auto-commit, dans lequel le driver de base de données créer une transaction pour chaque requête executée et la valide. Par défaut toutes les classes Zend_Db_Adapter fonctionnent en mode auto-commit.</p></blockquote>
<p>Source : <a href="http://framework.zend.com/manual/fr/zend.db.html#zend.db.adapter.transactions">Zend Framework</a></p>
<p>Vous l&#8217;aurez compris, les transactions représentes un groupe de requêtes qui pourra être validé si tout se passe bien ou dans la cas contraire annulé.</p>
<p><span id="more-153"></span></p>
<p>Pour diverses raisons, il peut être utile d&#8217;effectuer une transaction vers une base de données.<br />
Il va de soit que pour utiliser les transactions, votre SGBD et votre moteur de stockage doivent pouvoir les gérer. Ce qui est le cas d&#8217;INNODB pour MySQL mais pas <del datetime="2008-07-11T14:09:42+00:00">encore</del> pour MyISAM.</p>
<p>Donc si votre moteur de stockage est MyISAM, vous devrez convertir les tables qui seront concernées par vos futurs transactions.</p>
<p><strong>Changement du moteur de stockage</strong><br />
On peut changer dynamiquement le moteur de stockage à l&#8217;aide de la commande ALTER TABLE.</p>
<p>Pour passer le moteur de stockage de la table leNomDeMaTable en INNODB nous effectuerons la commande sql suivante :</p>

<div class="wp_codebox"><table><tr id="p1537"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p153code7"><pre class="sql" style="font-family:monospace;">    <span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> leNomDeMaTable ENGINE<span style="color: #66cc66;">=</span>INNODB;</pre></td></tr></table></div>

<p>Pour le passer en MyISAM :</p>

<div class="wp_codebox"><table><tr id="p1538"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p153code8"><pre class="sql" style="font-family:monospace;">    <span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> maTable2 ENGINE<span style="color: #66cc66;">=</span>MYISAM;</pre></td></tr></table></div>

<p><strong>Transactions à l&#8217;aide de Zend Framework</strong><br />
Maitenant que notre SGBD gère les transactions, il va falloir spécifier manuellement le démarrage de la transaction à l&#8217;aide de <em>beginTransaction()</em>. Toutes les requêtes qui suivront feront parties de celle-ci tant que la transaction ne sera pas annulée avec <em>rollBack()</em> ou validée par un <em>commit()</em>.</p>
<p>Le canevas de base sera donc :</p>

<div class="wp_codebox"><table><tr id="p1539"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code" id="p153code9"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">beginTransaction</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
try <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Essaye d'exécuter une ou plusieurs requêtes :</span>
    <span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">...</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// Si toutes ont réussi, valide les changements en une seule passe.</span>
    <span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">commit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
catch <span style="color: #009900;">&#40;</span>Exception <span style="color: #000088;">$e</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Si une des requête s'est mal déroulée, alors nous voulons annuler les changements</span>
    <span style="color: #666666; font-style: italic;">// de toutes les requêtes faisant partie de la transaction, même celles qui se sont</span>
    <span style="color: #666666; font-style: italic;">// bien déroulées. Tous les changements sont annulés d'un seul coup</span>
    <span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">rollBack</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$e</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p><strong>Transactions dans en MVC avec Zend Framework</strong><br />
Imaginons que nous avons des produits divers. Ceux-ci sont enregistrer dans une la base de données.<br />
Les informations communes à tous les produits sont enregistrées dans la table Produit et toutes les données spécifiques à chaque type de produit dans la table correspondant au type : ProduitNomDuType. </p>
<p>Nous aurons donc les modèles Produit qui est une classe qui héritera de Zend_Db_Table_Abstract et Produit_Row qui héritera de Zend_Db_Table_Row_Abstract (nous aurons la même chose pour gérer les tables et ligne des ProduitNomDuType).</p>
<p>Pour ajouter un produit du type Foo nous allons donc devoir remplir la table &laquo;&nbsp;générique&nbsp;&raquo; Produit et ProduitFoo.<br />
Nous allons donc créer une transaction qui effectuera l&#8217;insertion des données dans les 2 tables.</p>
<p>Ce qui pourrait nous donner dans l&#8217;action ajouterAction() de notre controller quelque chose comme :</p>

<div class="wp_codebox"><table><tr id="p15310"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
</pre></td><td class="code" id="p153code10"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">// ...</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// On récupère l'adaptater que nous avons sauvé dans le registry dans le boostrap</span>
<span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> Zend_Registry<span style="color: #339933;">::</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'db'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
&nbsp;
<span style="color: #666666; font-style: italic;">// On démarre la transaction</span>
<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">beginTransaction</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
try <span style="color: #009900;">&#123;</span>
	Zend_Loader<span style="color: #339933;">::</span><span style="color: #004000;">loadClass</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Produit'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	Zend_Loader<span style="color: #339933;">::</span><span style="color: #004000;">loadClass</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ProduitFoo'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$produitDb</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Produit<span style="color: #009900;">&#40;</span><span style="color: #000088;">$db</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$produitDb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">insert</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dataProduit</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// $dataProduit est un tableau qui représente les données générique du produit</span>
&nbsp;
	<span style="color: #000088;">$produitFooDb</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ProduitFoo<span style="color: #009900;">&#40;</span><span style="color: #000088;">$db</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$produitFooDb</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">insert</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dataProduitFoo</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">// $dataProduitFoo est un tableau qui représente les données spécifique du produit foo</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// On valide l'ensemble des requêtes</span>
	<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">commit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
catch <span style="color: #009900;">&#40;</span>Exception <span style="color: #000088;">$e</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">// Si une exception a été levée, on annule toutes les opérations du lot</span>
	<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">rollBack</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">//...</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Cette transaction permettra par exemple de ne pas se retrouver avec juste les infos génériques du produit si l&#8217;ajout des infos dans ProduitFoo a levé une exception.</p>
<p><strong>Quelques liens utiles</strong></p>
<ul>
<li><a href="http://framework.zend.com/manual/fr/">Manuel de Zend Framework</a> : <a href="http://framework.zend.com/manual/fr/zend.db.html">Zend_Db</a></li>
<li><a href="http://dev.mysql.com/doc/refman/5.0/fr/index.html">Manuel de MySql 5</a></li>
<li><a href="http://www.developpez.com/">Developpez.com</a> : <a href="http://mysql.developpez.com/">MySQL</a> et <a href="http://zend-framework.developpez.com/">Zend Framework</a></li>
<li><a href="http://www.z-f.fr/">Communauté Francophone de Zend Framework</a></li>
</ul>
<p>N&#8217;hésitez pas à poser vos questions ou remarques dans les commentaires, je me ferais un plaisir d&#8217;y répondre.</p>
<p><em>Note: je ne me suis pas étendu sur le fonctionnement du MVC avec Zend Framework vu qu&#8217;il y a énormément de chose à dire et que cela fera partie d&#8217;un futur tutorial.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webinside.be/transactions-dans-sgbd-a-laide-de-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
