<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2frenchfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:coop="http://www.google.com/coop/namespace" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Kévin Dunglas</title>
	
	<link>http://dunglas.fr</link>
	<description>Consultant IT et développeur freelance, Lille</description>
	<lastBuildDate>Fri, 03 May 2013 20:11:43 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/dunglas" /><feedburner:info uri="dunglas" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>dunglas</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fdunglas" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/dunglas" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fdunglas" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fdunglas" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fdunglas" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://add.my.yahoo.com/content?lg=fr&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fdunglas" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/bn/intatm_fr_1.gif">Subscribe with Mon Yahoo!</feedburner:feedFlare><item>
		<title>DunglasTorControlBundle, TorControl Symfony integration</title>
		<link>http://feedproxy.google.com/~r/dunglas/~3/IKhz-Em1-VA/</link>
		<comments>http://dunglas.fr/2013/03/dunglastorcontrolbundle-torcontrol-symfony-integration/#comments</comments>
		<pubDate>Wed, 06 Mar 2013 23:36:13 +0000</pubDate>
		<dc:creator>Kévin Dunglas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Non classé]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Tor]]></category>
		<category><![CDATA[TorControl]]></category>

		<guid isPermaLink="false">http://dunglas.fr/?p=744</guid>
		<description><![CDATA[I&#8217;ve just released a new Symfony bundle to use easily the PHP TorControl library with the framework. TorControl is a library I&#8217;ve wrote designed to control a Tor server using the control socket. Install the bundle using Composer. Type this &#8230; Continue reading &#8594;]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve just released a new <a href="http://symfony.com">Symfony</a> bundle to use easily the <a href="http://dunglas.fr/2013/02/php-torcontrol-a-library-to-control-tor/">PHP TorControl library</a> with the framework. TorControl is a library I&#8217;ve wrote designed to control a <a href="https://www.torproject.org/">Tor</a> server using the control socket.</p>
<p>Install the bundle using Composer. Type this command in your Symfony project directory:</p>
<p><pre class="crayon-plain-tag">composer require dunglas/torcontrol-bundle:dev-master</pre></p>
<p>Enable the bundle, edit your <em>app/config.yml</em> to match your Tor server configuration (look at the README.md file) and get a TorControl instance using the Symfony&#8217;s service container. In a controller implementing the ContainerAware interface:</p>
<p><pre class="crayon-plain-tag">$tc = $this-&gt;get('torcontrol');</pre></p>
<p>As usual, you can <a href="https://github.com/dunglas/DunglasTorControlBundle">download the bundle and its documentation on GitHub</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dunglas?a=IKhz-Em1-VA:TofFkhJtigs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=IKhz-Em1-VA:TofFkhJtigs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=IKhz-Em1-VA:TofFkhJtigs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dunglas?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=IKhz-Em1-VA:TofFkhJtigs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dunglas?i=IKhz-Em1-VA:TofFkhJtigs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=IKhz-Em1-VA:TofFkhJtigs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dunglas?i=IKhz-Em1-VA:TofFkhJtigs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=IKhz-Em1-VA:TofFkhJtigs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dunglas?i=IKhz-Em1-VA:TofFkhJtigs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=IKhz-Em1-VA:TofFkhJtigs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dunglas?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=IKhz-Em1-VA:TofFkhJtigs:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/dunglas?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=IKhz-Em1-VA:TofFkhJtigs:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/dunglas?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=IKhz-Em1-VA:TofFkhJtigs:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=IKhz-Em1-VA:TofFkhJtigs:KwTdNBX3Jqk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dunglas/~4/IKhz-Em1-VA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dunglas.fr/2013/03/dunglastorcontrolbundle-torcontrol-symfony-integration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
			<coop:keyword><![CDATA[English]]></coop:keyword>
		<coop:keyword><![CDATA[Non classé]]></coop:keyword>
		<coop:keyword><![CDATA[PHP]]></coop:keyword>
		<coop:keyword><![CDATA[Symfony]]></coop:keyword>
		<coop:keyword><![CDATA[Tor]]></coop:keyword>
		<coop:keyword><![CDATA[TorControl]]></coop:keyword>
	<feedburner:origLink>http://dunglas.fr/2013/03/dunglastorcontrolbundle-torcontrol-symfony-integration/</feedburner:origLink></item>
		<item>
		<title>PHP TorControl, une bibliothèque pour contrôler un serveur Tor</title>
		<link>http://feedproxy.google.com/~r/dunglas/~3/exGbiGBZWQg/</link>
		<comments>http://dunglas.fr/2013/02/php-torcontrol-une-bibliotheque-pour-controller-un-serveur-tor/#comments</comments>
		<pubDate>Sat, 23 Feb 2013 22:31:30 +0000</pubDate>
		<dc:creator>Kévin Dunglas</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[bibliothèque]]></category>
		<category><![CDATA[Tor]]></category>

		<guid isPermaLink="false">http://dunglas.fr/?p=735</guid>
		<description><![CDATA[Je  viens juste de publier TorControl, une bibliothèque écrite en PHP qui permet de contrôler un serveur Tor. Elle permet de : Se connecter à un serveur Tor via des sockets réseaux (SSL ou non) et UNIX. S&#8217;authentifier en utilisant &#8230; Continue reading &#8594;]]></description>
				<content:encoded><![CDATA[<p><a href="http://dunglas.fr/wp-content/uploads/2013/02/tor-logo.jpg"><img class="alignleft size-full wp-image-732" alt="Logo Tor" src="http://dunglas.fr/wp-content/uploads/2013/02/tor-logo.jpg" width="150" height="101" /></a>Je  viens juste de publier <strong>TorControl</strong>, une bibliothèque écrite en PHP qui permet de contrôler un serveur Tor.</p>
<p>Elle permet de :</p>
<ul>
<li><span style="line-height: 13px;">Se connecter à un serveur Tor via des sockets réseaux (SSL ou non) et UNIX.</span></li>
<li>S&#8217;authentifier en utilisant les méthodes sans vérification, par mot de passe et par cookie.</li>
<li>La détection automatique de la méthode à utiliser et la connexion automatique au serveur pour null et cookie.</li>
<li>De recevoir des réponses multi-lignes</li>
</ul>
<p>Elle dispose de tests unitaires et est installable grâce à Composer.</p>
<p>Vous trouverez le code, la doc et les exemples sur <a href="https://github.com/dunglas/php-torcontrol">le dépôt GitHub dédié à TorControl</a>.</p>
<p><a href="http://dunglas.fr/2013/03/dunglastorcontrolbundle-torcontrol-symfony-integration/">Un bundle Symfony</a> est également dispo.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dunglas?a=exGbiGBZWQg:PxRHg7q9bJ8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=exGbiGBZWQg:PxRHg7q9bJ8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=exGbiGBZWQg:PxRHg7q9bJ8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dunglas?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=exGbiGBZWQg:PxRHg7q9bJ8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dunglas?i=exGbiGBZWQg:PxRHg7q9bJ8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=exGbiGBZWQg:PxRHg7q9bJ8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dunglas?i=exGbiGBZWQg:PxRHg7q9bJ8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=exGbiGBZWQg:PxRHg7q9bJ8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dunglas?i=exGbiGBZWQg:PxRHg7q9bJ8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=exGbiGBZWQg:PxRHg7q9bJ8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dunglas?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=exGbiGBZWQg:PxRHg7q9bJ8:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/dunglas?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=exGbiGBZWQg:PxRHg7q9bJ8:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/dunglas?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=exGbiGBZWQg:PxRHg7q9bJ8:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=exGbiGBZWQg:PxRHg7q9bJ8:KwTdNBX3Jqk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dunglas/~4/exGbiGBZWQg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dunglas.fr/2013/02/php-torcontrol-une-bibliotheque-pour-controller-un-serveur-tor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[PHP]]></coop:keyword>
		<coop:keyword><![CDATA[bibliothèque]]></coop:keyword>
		<coop:keyword><![CDATA[Tor]]></coop:keyword>
	<feedburner:origLink>http://dunglas.fr/2013/02/php-torcontrol-une-bibliotheque-pour-controller-un-serveur-tor/</feedburner:origLink></item>
		<item>
		<title>PHP TorControl, a library to control TOR</title>
		<link>http://feedproxy.google.com/~r/dunglas/~3/dn4CtxBPo7c/</link>
		<comments>http://dunglas.fr/2013/02/php-torcontrol-a-library-to-control-tor/#comments</comments>
		<pubDate>Sat, 23 Feb 2013 22:21:05 +0000</pubDate>
		<dc:creator>Kévin Dunglas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[Tor]]></category>

		<guid isPermaLink="false">http://dunglas.fr/?p=730</guid>
		<description><![CDATA[I have just released TorControl, a PHP library to control a Tor server. This library implements the Tor Control protocol. It supports: Connect to a Tor server through network socket, SSL network socket or UNIX socket Null, password and cookie &#8230; Continue reading &#8594;]]></description>
				<content:encoded><![CDATA[<p><a href="http://dunglas.fr/wp-content/uploads/2013/02/tor-logo.jpg"><img class="alignleft size-full wp-image-732" alt="Tor logo" src="http://dunglas.fr/wp-content/uploads/2013/02/tor-logo.jpg" width="150" height="101" /></a></p>
<p>I have just released <strong>TorControl</strong>, a PHP library to control a <a href="https://www.torproject.org/">Tor</a> server.</p>
<p>This library implements the Tor Control protocol.</p>
<p>It supports:</p>
<ul>
<li>Connect to a Tor server through network socket, SSL network socket or UNIX socket</li>
<li>Null, password and cookie file authentication methods</li>
<li>Automatic authentication for null and cookie file methods</li>
<li>Multi-line replies</li>
</ul>
<p>It is unit-tested with PHPUnit and and installable with Composer.</p>
<p>Download it, see examples and read the doc <a href="https://github.com/dunglas/php-torcontrol">on the GitHub repository of the library</a>.</p>
<p><a href="http://dunglas.fr/2013/03/dunglastorcontrolbundle-torcontrol-symfony-integration/">A Symfony bundle is also available</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dunglas?a=dn4CtxBPo7c:4wMpdxe9zV0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=dn4CtxBPo7c:4wMpdxe9zV0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=dn4CtxBPo7c:4wMpdxe9zV0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dunglas?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=dn4CtxBPo7c:4wMpdxe9zV0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dunglas?i=dn4CtxBPo7c:4wMpdxe9zV0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=dn4CtxBPo7c:4wMpdxe9zV0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dunglas?i=dn4CtxBPo7c:4wMpdxe9zV0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=dn4CtxBPo7c:4wMpdxe9zV0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dunglas?i=dn4CtxBPo7c:4wMpdxe9zV0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=dn4CtxBPo7c:4wMpdxe9zV0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dunglas?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=dn4CtxBPo7c:4wMpdxe9zV0:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/dunglas?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=dn4CtxBPo7c:4wMpdxe9zV0:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/dunglas?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=dn4CtxBPo7c:4wMpdxe9zV0:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=dn4CtxBPo7c:4wMpdxe9zV0:KwTdNBX3Jqk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dunglas/~4/dn4CtxBPo7c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dunglas.fr/2013/02/php-torcontrol-a-library-to-control-tor/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
			<coop:keyword><![CDATA[English]]></coop:keyword>
		<coop:keyword><![CDATA[PHP]]></coop:keyword>
		<coop:keyword><![CDATA[library]]></coop:keyword>
		<coop:keyword><![CDATA[Tor]]></coop:keyword>
	<feedburner:origLink>http://dunglas.fr/2013/02/php-torcontrol-a-library-to-control-tor/</feedburner:origLink></item>
		<item>
		<title>Diaporama diffusé lors du workshop sur le référencement avec HTML5</title>
		<link>http://feedproxy.google.com/~r/dunglas/~3/aurYYRfjAtw/</link>
		<comments>http://dunglas.fr/2013/02/diaporama-diffuse-lors-du-workshop-sur-le-referencement-avec-html5/#comments</comments>
		<pubDate>Mon, 04 Feb 2013 21:23:00 +0000</pubDate>
		<dc:creator>Kévin Dunglas</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Référencement]]></category>
		<category><![CDATA[Standards du web]]></category>
		<category><![CDATA[Web sémantique]]></category>
		<category><![CDATA[microdata]]></category>
		<category><![CDATA[sémantique]]></category>
		<category><![CDATA[slides]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://dunglas.fr/?p=723</guid>
		<description><![CDATA[Voici le diaporama qui a servi de support au workshop sur le référencement avec HTML5 que j&#8217;ai animé jeudi 31 janvier pour La Coopérative des Tilleuls : Ce sont le thème Prestashop HTML5 optimisé pour le référencement et l&#8217;implémentation de TodoMVC avec &#8230; Continue reading &#8594;]]></description>
				<content:encoded><![CDATA[<p>Voici le diaporama qui a servi de support au <a href="http://les-tilleuls.coop/workshop-referencement-html5/">workshop sur le référencement avec HTML5</a> que j&#8217;ai animé jeudi 31 janvier pour La Coopérative des Tilleuls :</p>
<object type='application/x-shockwave-flash' wmode='opaque' data='http://static.slideshare.net/swf/ssplayer2.swf?id=16339748&doc=workshopreferencementhtml5-130204062048-phpapp02' width='567' height='465'><param name='movie' value='http://static.slideshare.net/swf/ssplayer2.swf?id=16339748&doc=workshopreferencementhtml5-130204062048-phpapp02' /><param name='allowFullScreen' value='true' /></object>
<p>Ce sont <a href="http://dunglas.fr/2013/01/un-theme-prestashop-html5-optimise-pour-le-referencement-avec-rich-snippets/">le thème Prestashop HTML5 optimisé pour le référencement</a> et <a href="http://dunglas.fr/2013/02/symfony-2-backbone-js-et-chaplin-js-une-implementation-de-todomvc/">l&#8217;implémentation de TodoMVC avec Symfony et Backbone.js</a> qui ont servi de support.</p>
<p>Le prochain workshop de cette série sera justement dédié à la programmation JavaScript avancée avec Chaplin.js et Backbone.js. Il se déroulera début mars, toujours à <a href="http://co-factory.fr/">Co-Factory</a>.</p>
<p><a href="http://dunglas.fr/wp-content/uploads/2013/02/workshop-html5.jpg"><img class="aligncenter size-large wp-image-724" alt="Workshop HTML5" src="http://dunglas.fr/wp-content/uploads/2013/02/workshop-html5-1024x576.jpg" width="567" height="318" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dunglas?a=aurYYRfjAtw:Yc691MiAJ94:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=aurYYRfjAtw:Yc691MiAJ94:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=aurYYRfjAtw:Yc691MiAJ94:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dunglas?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=aurYYRfjAtw:Yc691MiAJ94:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dunglas?i=aurYYRfjAtw:Yc691MiAJ94:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=aurYYRfjAtw:Yc691MiAJ94:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dunglas?i=aurYYRfjAtw:Yc691MiAJ94:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=aurYYRfjAtw:Yc691MiAJ94:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dunglas?i=aurYYRfjAtw:Yc691MiAJ94:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=aurYYRfjAtw:Yc691MiAJ94:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dunglas?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=aurYYRfjAtw:Yc691MiAJ94:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/dunglas?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=aurYYRfjAtw:Yc691MiAJ94:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/dunglas?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=aurYYRfjAtw:Yc691MiAJ94:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=aurYYRfjAtw:Yc691MiAJ94:KwTdNBX3Jqk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dunglas/~4/aurYYRfjAtw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dunglas.fr/2013/02/diaporama-diffuse-lors-du-workshop-sur-le-referencement-avec-html5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[HTML5]]></coop:keyword>
		<coop:keyword><![CDATA[Référencement]]></coop:keyword>
		<coop:keyword><![CDATA[Standards du web]]></coop:keyword>
		<coop:keyword><![CDATA[Web sémantique]]></coop:keyword>
		<coop:keyword><![CDATA[microdata]]></coop:keyword>
		<coop:keyword><![CDATA[sémantique]]></coop:keyword>
		<coop:keyword><![CDATA[slides]]></coop:keyword>
		<coop:keyword><![CDATA[workshop]]></coop:keyword>
	<feedburner:origLink>http://dunglas.fr/2013/02/diaporama-diffuse-lors-du-workshop-sur-le-referencement-avec-html5/</feedburner:origLink></item>
		<item>
		<title>Symfony 2, Backbone.js et Chaplin.js : une implémentation de TodoMVC</title>
		<link>http://feedproxy.google.com/~r/dunglas/~3/bcZTBxOEybQ/</link>
		<comments>http://dunglas.fr/2013/02/symfony-2-backbone-js-et-chaplin-js-une-implementation-de-todomvc/#comments</comments>
		<pubDate>Sun, 03 Feb 2013 18:47:53 +0000</pubDate>
		<dc:creator>Kévin Dunglas</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Backbone.js]]></category>
		<category><![CDATA[Chaplin.js]]></category>
		<category><![CDATA[TodoMVC]]></category>

		<guid isPermaLink="false">http://dunglas.fr/?p=714</guid>
		<description><![CDATA[Je viens de publier une implémentation du célèbre TodoMVC sous forme de  bundle Symfony 2. Cela fait suite à mon précèdent article sur l&#8217;utilisation de Symfony avec les bibliothèques JavaScript Chaplin.js et Backbone.js. TodoMVC est un projet présentant de nombreuses implémentations &#8230; Continue reading &#8594;]]></description>
				<content:encoded><![CDATA[<p>Je viens de publier une implémentation du célèbre <a href="http://todomvc.com/">TodoMVC</a> sous forme de  <em>bundle</em> Symfony 2. Cela fait suite à <a href="http://dunglas.fr/2012/12/utiliser-chaplin-js-et-backbone-js-avec-symfony-2-installation-et-configuration/">mon précèdent article sur l&#8217;utilisation de Symfony avec les bibliothèques JavaScript Chaplin.js et Backbone.js</a>.</p>
<p><a href="http://dunglas.fr/wp-content/uploads/2013/02/screenshot-symfony-todomvc.png"><img class="aligncenter size-full wp-image-712" alt="Screenshot Symfony Todomvc" src="http://dunglas.fr/wp-content/uploads/2013/02/screenshot-symfony-todomvc.png" width="620" height="365" /></a></p>
<p><a href="http://todomvc.com/">TodoMVC</a> est un projet présentant de nombreuses implémentations de la même application de gestion de tâches (<em>todo</em>) à l&#8217;aide des frameworks JavaScript MV* les plus populaires (Backbone.js, AngularJS, Ember.js, KnockoutJS&#8230;). Il permet ainsi de découvrir ces frameworks et de choisir celui qui nous semble le plus adapté.</p>
<p>L&#8217; implémentation que je propose contient le code du frontend, mais aussi le backend réalisé à l&#8217;aide de Symfony.</p>
<p>Le bundle fourni un example d&#8217;intégration complète de Backbone, Chaplin et Symfony. Il inclus une API REST JSON réalisée à l&#8217;aide de <a href="https://github.com/FriendsOfSymfony/FOSRestBundle">FOSRestBundle</a> et du framework de formulaire de Symfony, l&#8217;entité Doctrine représentant un Todo, le code CoffeeScript de l&#8217;application cliente, la vue chargeant la SPA et quelques tests fonctionnels.</p>
<p><a href="http://symfony-todomvc.dunglas.fr/">Essayez la démo</a> et <a href="https://github.com/dunglas/DunglasTodoMVCBundle">consultez le code sur GitHub</a>.<br />
<a href="http://dunglas.fr/2013/02/symfony-2-todomvc-backbone-chaplin/">Version anglaise de cet article</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dunglas?a=bcZTBxOEybQ:DdladfQ3VK0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=bcZTBxOEybQ:DdladfQ3VK0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=bcZTBxOEybQ:DdladfQ3VK0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dunglas?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=bcZTBxOEybQ:DdladfQ3VK0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dunglas?i=bcZTBxOEybQ:DdladfQ3VK0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=bcZTBxOEybQ:DdladfQ3VK0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dunglas?i=bcZTBxOEybQ:DdladfQ3VK0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=bcZTBxOEybQ:DdladfQ3VK0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dunglas?i=bcZTBxOEybQ:DdladfQ3VK0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=bcZTBxOEybQ:DdladfQ3VK0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dunglas?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=bcZTBxOEybQ:DdladfQ3VK0:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/dunglas?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=bcZTBxOEybQ:DdladfQ3VK0:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/dunglas?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=bcZTBxOEybQ:DdladfQ3VK0:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=bcZTBxOEybQ:DdladfQ3VK0:KwTdNBX3Jqk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dunglas/~4/bcZTBxOEybQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dunglas.fr/2013/02/symfony-2-backbone-js-et-chaplin-js-une-implementation-de-todomvc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
			<coop:keyword><![CDATA[HTML5]]></coop:keyword>
		<coop:keyword><![CDATA[PHP]]></coop:keyword>
		<coop:keyword><![CDATA[Symfony]]></coop:keyword>
		<coop:keyword><![CDATA[Backbone.js]]></coop:keyword>
		<coop:keyword><![CDATA[Chaplin.js]]></coop:keyword>
		<coop:keyword><![CDATA[TodoMVC]]></coop:keyword>
	<feedburner:origLink>http://dunglas.fr/2013/02/symfony-2-backbone-js-et-chaplin-js-une-implementation-de-todomvc/</feedburner:origLink></item>
		<item>
		<title>A Symfony 2 TodoMVC implementation using Backbone.js and Chaplin.js</title>
		<link>http://feedproxy.google.com/~r/dunglas/~3/A7TANBeR_1I/</link>
		<comments>http://dunglas.fr/2013/02/symfony-2-todomvc-backbone-chaplin/#comments</comments>
		<pubDate>Sun, 03 Feb 2013 18:30:47 +0000</pubDate>
		<dc:creator>Kévin Dunglas</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Backbone.js]]></category>
		<category><![CDATA[Chaplin.js]]></category>
		<category><![CDATA[TodoMVC]]></category>

		<guid isPermaLink="false">http://dunglas.fr/?p=711</guid>
		<description><![CDATA[I have just released an implementation of TodoMVC using Symfony 2 (the best PHP framework), Chaplin.js and Backbone.js. It follows my previous article on the use of these technologies (in french). TodoMVC is a project which offers the same Todo application &#8230; Continue reading &#8594;]]></description>
				<content:encoded><![CDATA[<p>I have just released an implementation of <a href="http://todomvc.com/">TodoMVC</a> using <a href="http://symfony.com/">Symfony 2</a> (the best PHP framework), <a href="http://chaplinjs.org/">Chaplin.js</a> and <a href="http://backbonejs.org/">Backbone.js</a>. It follows <a href="http://dunglas.fr/2012/12/utiliser-chaplin-js-et-backbone-js-avec-symfony-2-installation-et-configuration/">my previous article on the use of these technologies</a> (in french).</p>
<blockquote><p>TodoMVC is a project which offers the same Todo application implemented using MV* concepts in most of the popular JavaScript MV* frameworks of today.</p></blockquote>
<p>This a backend and frontend implementation of this project. It is a demo of Chaplin and Backbone working with Symfony.<br />
<a href="http://dunglas.fr/wp-content/uploads/2013/02/screenshot-symfony-todomvc.png"><img class="aligncenter size-full wp-image-712" alt="Screenshot Symfony Todomvc" src="http://dunglas.fr/wp-content/uploads/2013/02/screenshot-symfony-todomvc.png" width="620" height="365" /></a></p>
<p>&nbsp;</p>
<p>My bundle includes a JSON REST API built with <a href="https://github.com/FriendsOfSymfony/FOSRestBundle">FOSRestBundle</a> and the Symfony&#8217;s form framework, the Doctrine entitiy, the view to load the SPA, the CoffeeScript code and some functional tests.</p>
<p><a href="http://symfony-todomvc.dunglas.fr/">Try the demo</a> and <a href="https://github.com/dunglas/DunglasTodoMVCBundle">download it on GitHub</a>.</p>
<p><a href="http://dunglas.fr/2013/02/symfony-2-backbone-js-et-chaplin-js-une-implementation-de-todomvc/">French version of this article</a>.</p>
<p>&nbsp;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dunglas?a=A7TANBeR_1I:OIFlHKqV2CE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=A7TANBeR_1I:OIFlHKqV2CE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=A7TANBeR_1I:OIFlHKqV2CE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dunglas?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=A7TANBeR_1I:OIFlHKqV2CE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dunglas?i=A7TANBeR_1I:OIFlHKqV2CE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=A7TANBeR_1I:OIFlHKqV2CE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dunglas?i=A7TANBeR_1I:OIFlHKqV2CE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=A7TANBeR_1I:OIFlHKqV2CE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dunglas?i=A7TANBeR_1I:OIFlHKqV2CE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=A7TANBeR_1I:OIFlHKqV2CE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dunglas?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=A7TANBeR_1I:OIFlHKqV2CE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/dunglas?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=A7TANBeR_1I:OIFlHKqV2CE:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/dunglas?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=A7TANBeR_1I:OIFlHKqV2CE:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=A7TANBeR_1I:OIFlHKqV2CE:KwTdNBX3Jqk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dunglas/~4/A7TANBeR_1I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dunglas.fr/2013/02/symfony-2-todomvc-backbone-chaplin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[English]]></coop:keyword>
		<coop:keyword><![CDATA[HTML5]]></coop:keyword>
		<coop:keyword><![CDATA[Symfony]]></coop:keyword>
		<coop:keyword><![CDATA[Backbone.js]]></coop:keyword>
		<coop:keyword><![CDATA[Chaplin.js]]></coop:keyword>
		<coop:keyword><![CDATA[TodoMVC]]></coop:keyword>
	<feedburner:origLink>http://dunglas.fr/2013/02/symfony-2-todomvc-backbone-chaplin/</feedburner:origLink></item>
		<item>
		<title>Workshop gratuit sur le référencement naturel avec HTML5 jeudi 31 janvier à Lille</title>
		<link>http://feedproxy.google.com/~r/dunglas/~3/ZJCU-lTJX_Q/</link>
		<comments>http://dunglas.fr/2013/01/workshop-gratuit-sur-le-referencement-naturel-avec-html5-jeudi-31-janvier-a-lille/#comments</comments>
		<pubDate>Tue, 22 Jan 2013 18:47:53 +0000</pubDate>
		<dc:creator>Kévin Dunglas</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Référencement]]></category>
		<category><![CDATA[Standards du web]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web sémantique]]></category>
		<category><![CDATA[Co-Factory]]></category>
		<category><![CDATA[La Coopérative des Tilleuls]]></category>
		<category><![CDATA[Lille]]></category>
		<category><![CDATA[sémantique]]></category>

		<guid isPermaLink="false">http://dunglas.fr/?p=698</guid>
		<description><![CDATA[Jeudi prochain, j&#8217;animerais pour La Coopérative des Tilleuls, un atelier gratuit sur l&#8217;utilisation des propriétés sémantiques de HTML5 pour améliorer le référencement naturel des sites internet. C&#8217;est chez nos amis de Co-Factory que ça se passe (677 avenue de la &#8230; Continue reading &#8594;]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-large wp-image-699" alt="Worskhop sur le référencement naturel avec HTML5" src="http://dunglas.fr/wp-content/uploads/2013/01/workshop-html5-referencement-724x1024.png" width="567" height="801" /></p>
<p>Jeudi prochain, j&#8217;animerais pour <a href="http://les-tilleuls.coop">La Coopérative des Tilleuls</a>, un atelier gratuit sur l&#8217;utilisation des propriétés sémantiques de HTML5 pour améliorer le référencement naturel des sites internet. C&#8217;est chez nos amis de <a href="http://co-factory.fr/">Co-Factory</a> que ça se passe (677 avenue de la République, Lille).</p>
<p>Au programme :</p>
<ul>
<li>Introduction au référencement</li>
<li>Présentation des balises sémantiques de HTML5</li>
<li>Comprendre l’algorithme de « outline » HTML5 pour mettre en valeur l’information pertinente</li>
<li>Mettre en avant ses pages dans les moteurs de recherche avec les microdata, Schema.org et les extraits enrichis</li>
<li>Allez plus loin, jouer avec Javascript pour référencer des SPA (Single Page Application)</li>
</ul>
<p>Ce workshop est gratuit et ouvert à tous mais il est impératif <a href="http://les-tilleuls.coop/workshop-html5-referencement-naturel-grace-a-la-semantique/">de réserver</a> au préalable. Venez !</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dunglas?a=ZJCU-lTJX_Q:fE14s0quCSY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=ZJCU-lTJX_Q:fE14s0quCSY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=ZJCU-lTJX_Q:fE14s0quCSY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dunglas?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=ZJCU-lTJX_Q:fE14s0quCSY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dunglas?i=ZJCU-lTJX_Q:fE14s0quCSY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=ZJCU-lTJX_Q:fE14s0quCSY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dunglas?i=ZJCU-lTJX_Q:fE14s0quCSY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=ZJCU-lTJX_Q:fE14s0quCSY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dunglas?i=ZJCU-lTJX_Q:fE14s0quCSY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=ZJCU-lTJX_Q:fE14s0quCSY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dunglas?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=ZJCU-lTJX_Q:fE14s0quCSY:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/dunglas?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=ZJCU-lTJX_Q:fE14s0quCSY:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/dunglas?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=ZJCU-lTJX_Q:fE14s0quCSY:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=ZJCU-lTJX_Q:fE14s0quCSY:KwTdNBX3Jqk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dunglas/~4/ZJCU-lTJX_Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dunglas.fr/2013/01/workshop-gratuit-sur-le-referencement-naturel-avec-html5-jeudi-31-janvier-a-lille/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[HTML5]]></coop:keyword>
		<coop:keyword><![CDATA[Référencement]]></coop:keyword>
		<coop:keyword><![CDATA[Standards du web]]></coop:keyword>
		<coop:keyword><![CDATA[Web 2.0]]></coop:keyword>
		<coop:keyword><![CDATA[Web sémantique]]></coop:keyword>
		<coop:keyword><![CDATA[Co-Factory]]></coop:keyword>
		<coop:keyword><![CDATA[La Coopérative des Tilleuls]]></coop:keyword>
		<coop:keyword><![CDATA[Lille]]></coop:keyword>
		<coop:keyword><![CDATA[sémantique]]></coop:keyword>
	<feedburner:origLink>http://dunglas.fr/2013/01/workshop-gratuit-sur-le-referencement-naturel-avec-html5-jeudi-31-janvier-a-lille/</feedburner:origLink></item>
		<item>
		<title>Un thème Prestashop HTML5 optimisé pour le référencement avec Rich Snippets</title>
		<link>http://feedproxy.google.com/~r/dunglas/~3/BwOQPEL4SKQ/</link>
		<comments>http://dunglas.fr/2013/01/un-theme-prestashop-html5-optimise-pour-le-referencement-avec-rich-snippets/#comments</comments>
		<pubDate>Thu, 10 Jan 2013 23:00:43 +0000</pubDate>
		<dc:creator>Kévin Dunglas</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Prestashop]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Référencement]]></category>
		<category><![CDATA[Standards du web]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Rich Snippets]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://dunglas.fr/?p=683</guid>
		<description><![CDATA[J&#8217;ai contribué il y&#8217;à quelques temps déjà la migration vers HTML5 du thème par défaut de Prestashop, la plateforme e-commerce libre. En attendant l&#8217;inclusion de ce patch dans la version upstream je vous propose au téléchargement un thème autonome libre &#8230; Continue reading &#8594;]]></description>
				<content:encoded><![CDATA[<div id="attachment_684" class="wp-caption aligncenter" style="width: 540px"><img class="size-full wp-image-684" alt="Exemple d'extrait enrichi (Rich Snippet) sur Google" src="http://dunglas.fr/wp-content/uploads/2013/01/rich-snippet-pirate.png" width="530" height="113" /><p class="wp-caption-text">Exemple d&#8217;extrait enrichi (Rich Snippet) sur Google</p></div>
<p>J&#8217;ai <a href="https://github.com/PrestaShop/PrestaShop/pull/89">contribué</a> il y&#8217;à quelques temps déjà la migration vers HTML5 du thème par défaut de Prestashop, la plateforme e-commerce libre. En attendant l&#8217;inclusion de ce patch dans la version <em>upstream</em> je vous propose au téléchargement un thème autonome libre et gratuit compatible avec les versions 1.5 et supérieures de Prestashop.</p>
<p>Il s&#8217;agit donc du thème par défaut techniquement optimisé pour un meilleur référencement naturel, plus accessible aux personnes handicapées et avec le support automatique des <a href="http://support.google.com/webmasters/bin/answer.py?hl=fr&amp;answer=99170">extraits enrichis</a> affichés dans Google (voir l&#8217;illustration plus haut).</p>
<p>Voici la liste détaillée des fonctionnalités ajoutées :</p>
<ul>
<li>Microdata HTML5 Schema.org <em>Offer</em>, <em>Product</em> et <em>Breadcrumb</em> pour afficher des &#8220;extraits enrichis&#8221; (Rich Snippets) dans Google</li>
<li>Nouvelles balises sémantiques HTML5 <code>header</code>, <code>nav</code>, <code>footer</code> et <code>article</code> pour un meilleur référencement (support des anciens navigateurs via Modernizr)</li>
<li>Rôles ARIA <em>main</em>, <em>navigation</em>, <em>search</em>, <em>complementary</em>, <em>contentinfo</em> et <em>banner</em> pour rendre le site plus accessible aux personnes souffrant de déficiences visuelles, auditives ou cognitives</li>
</ul>
<p>Bien sûr cette template est complétement personnalisable, faites pour se charger vite et compatible avec le mode multiboutique et multilingue de Prestashop. C&#8217;est une base moderne pour personnaliser l&#8217;apparence de sa boutique sans négliger le référencement.</p>
<ul>
<li><a href="https://github.com/dunglas/prestashop-html5-theme">Télécharger la template sur GitHub</a> (si vous ne savez pas utiliser Git, cliquez sur le bouton ZIP).</li>
<li><a href="http://prestashop-html5.dunglas.fr/">Voir une démo</a>.</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dunglas?a=BwOQPEL4SKQ:f8js62ZtP9M:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=BwOQPEL4SKQ:f8js62ZtP9M:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=BwOQPEL4SKQ:f8js62ZtP9M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dunglas?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=BwOQPEL4SKQ:f8js62ZtP9M:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dunglas?i=BwOQPEL4SKQ:f8js62ZtP9M:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=BwOQPEL4SKQ:f8js62ZtP9M:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dunglas?i=BwOQPEL4SKQ:f8js62ZtP9M:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=BwOQPEL4SKQ:f8js62ZtP9M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dunglas?i=BwOQPEL4SKQ:f8js62ZtP9M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=BwOQPEL4SKQ:f8js62ZtP9M:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dunglas?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=BwOQPEL4SKQ:f8js62ZtP9M:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/dunglas?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=BwOQPEL4SKQ:f8js62ZtP9M:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/dunglas?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=BwOQPEL4SKQ:f8js62ZtP9M:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=BwOQPEL4SKQ:f8js62ZtP9M:KwTdNBX3Jqk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dunglas/~4/BwOQPEL4SKQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dunglas.fr/2013/01/un-theme-prestashop-html5-optimise-pour-le-referencement-avec-rich-snippets/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
			<coop:keyword><![CDATA[PHP]]></coop:keyword>
		<coop:keyword><![CDATA[Prestashop]]></coop:keyword>
		<coop:keyword><![CDATA[Programmation]]></coop:keyword>
		<coop:keyword><![CDATA[Référencement]]></coop:keyword>
		<coop:keyword><![CDATA[Standards du web]]></coop:keyword>
		<coop:keyword><![CDATA[HTML5]]></coop:keyword>
		<coop:keyword><![CDATA[Rich Snippets]]></coop:keyword>
		<coop:keyword><![CDATA[SEO]]></coop:keyword>
	<feedburner:origLink>http://dunglas.fr/2013/01/un-theme-prestashop-html5-optimise-pour-le-referencement-avec-rich-snippets/</feedburner:origLink></item>
		<item>
		<title>Utiliser Chaplin.js et Backbone.js avec Symfony 2 : installation et configuration</title>
		<link>http://feedproxy.google.com/~r/dunglas/~3/C9j35Fvj9X0/</link>
		<comments>http://dunglas.fr/2012/12/utiliser-chaplin-js-et-backbone-js-avec-symfony-2-installation-et-configuration/#comments</comments>
		<pubDate>Sun, 30 Dec 2012 10:50:21 +0000</pubDate>
		<dc:creator>Kévin Dunglas</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://dunglas.fr/?p=655</guid>
		<description><![CDATA[Introduction Le développement d&#8217;applications web modernes de qualité est une tache complexe : elles doivent être performantes, réactives, maintenables, modulaires, évolutives et,  à minima, être compatibles avec la diversité de navigateurs et de plateformes avec lesquelles elles seront utilisées (ordinateurs, tablettes, &#8230; Continue reading &#8594;]]></description>
				<content:encoded><![CDATA[<h2>Introduction</h2>
<p style="text-align: center;"><img class="aligncenter  wp-image-687" alt="Backbone.js" src="http://dunglas.fr/wp-content/uploads/2012/12/backbone.png" width="629" height="112" /></p>
<p>Le développement d&#8217;applications web modernes de qualité est une tache complexe : elles doivent être performantes, réactives, maintenables, modulaires, évolutives et,  à minima, être compatibles avec la diversité de navigateurs et de plateformes avec lesquelles elles seront utilisées (ordinateurs, tablettes, smartphones&#8230;). Elles doivent s&#8217;intégrer avec un nombre croissant de services tiers (Facebook, Twitter&#8230;). Elles doivent pouvoir être déployées sur des hébergements classiques comme sur des plateformes de <em>Cloud Computing</em>.</p>
<p>Pour réussir, la partie client de l&#8217;application doit désormais être tout aussi soignée et bien conçue que la partie serveur. Heureusement de nombreux composants logiciels permettent d&#8217;accélérer et de fiabiliser ces développements. Encore faut-il savoir choisir dans cette jungle des bibliothèques et de <em>frameworks </em>puis les faire fonctionner ensembles.</p>
<p>Question choix, pas d&#8217;inquiétudes, je les impose !</p>
<p>Côté serveur j&#8217;utiliserais <a href="http://symfony.com">Symfony</a> 2. La deuxième version majeure de ce framework web à la Ruby On Rails écrit en PHP repose sur <a href="http://fr.wikipedia.org/wiki/Mod%C3%A8le-Vue-Contr%C3%B4leur">le meta-pattern MVC</a> et <a href="http://en.wikipedia.org/wiki/Dependency_injection">l&#8217;injection de dépendances</a>. Le framework Symfony inclut en standard presque tout ce qu&#8217;il faut : <a href="http://www.doctrine-project.org/">ORM</a>, <a href="http://twig.sensiolabs.org/">templates</a>, <a href="http://swiftmailer.org/">système d&#8217;envoi d&#8217;emails</a>, framework de génération de formulaires, outils de tests unitaires et fonctionnels. Il promeut des conventions de structuration et de codage ; est fort d&#8217;une vaste communauté et dispose de nombreux bundles tiers (extensions) parmi lesquels <a href="http://sonata-project.org/bundles/admin/master/doc/index.html">un générateur d&#8217;administration</a>, <a href="https://github.com/FriendsOfSymfony/FOSFacebookBundle">l&#8217;intégration de l&#8217;API Facebook</a> et <a href="http://knpbundles.com/">près de 1800 autres</a>.</p>
<p>Côté client je me baserais sur la bibliothèque <a href="http://backbonejs.org/">Backbone.js</a>, une étoile montante du monde Javascript, via <a href="http://chaplinjs.org/">Chaplin.js</a>. Backbone permet de synchroniser très aisément les données d&#8217;une application cliente via des appels à une API REST côté serveur. Le framework <a href="http://chaplinjs.org/">Chaplin.js</a> qui repose sur Backbone propose un structure de projet et quelques fonctionnalités bien utiles comme le support des modules AMD et une implémentation des design-patterns usuels.</p>
<p>J&#8217;écrierais le code client en <a href="http://coffeescript.org/">CoffeeScript</a>, une syntaxe alternative à JS inspirée de Ruby mais vous n&#8217;êtes pas obligés de faire de même.</p>
<p>Je vais m&#8217;employer à décire au long de deux articles l&#8217;utilisation conjointe de ces deux technologies. Dans le premier nous installerons et configurerons ces composants pour qu&#8217;ils fonctionnent ensembles. Dans le second je réaliserais un <del>microblog</del> <a href="http://dunglas.fr/2013/02/symfony-2-backbone-js-et-chaplin-js-une-implementation-de-todomvc/">une implémentation de TodoMVC</a>. Sa partie serveur sera réalisée avec Symfony sous la forme d&#8217;une API REST / JSON directement compatible avec sa partie cliente réalisée à l&#8217;aide de Chaplin.js et Backbone.js.</p>
<h2>Pré-requis</h2>
<h3>Connaissances</h3>
<ul>
<li>maîtrise de PHP et de la programmation orienté objet</li>
<li>bonnes notions du développement avec Symfony 2</li>
<li>maîtrise de JavaScript</li>
<li>notions de CoffeeScript si vous souhaitez utilisez cette syntaxe</li>
</ul>
<h3>Logiciels</h3>
<ul>
<li><a href="http://dunglas.fr/2012/11/installer-un-stack-lamp-sur-un-dedie-ovh-avec-ubuntu-12-10/">un serveur LAMP</a> (Apache, PHP, MySQL) fonctionnel</li>
<li>le gestionnaire de bibliothèques PHP <a href="http://getcomposer.org/">Composer</a></li>
<li>si vous souhaitez utiliser la version Coffee de Chaplin.js il faudra bien entendu <a href="http://coffeescript.org/">CoffeeScript</a>, qui lui même dépend de <a href="http://nodejs.org/">Node.js</a> et de <a href="https://npmjs.org/">NPM</a></li>
</ul>
<p>Si vous utilisez Mac OS X je ne saurais que trop vous conseiller <a href="http://mxcl.github.com/homebrew/">Homebrew</a> pour installer MySQL, Node.js (si vous utilisez la version CoffeeScript de Chaplin.js) et <a href="http://dunglas.fr/2012/12/installer-php-sur-os-x-avec-le-support-de-mysql-et-de-intl/">une version récente de PHP</a>.</p>
<h2>Création du projet Symfony</h2>
<p>Installez Symfony via Composer grâce à cette commande :</p>
<p><code>$ composer create-project symfony/framework-standard-edition &lt;mon-dossier/votre-application&gt; <a href="http://symfony.com/download">2.16</a></code></p>
<p>Puis <a href="http://symfony.com/doc/current/book/installation.html">suivez le guide</a> pour configurer correctement votre environnement.</p>
<h2>Génération du bundle qui contiendra l&#8217;application client Backbone.js / Chaplin.js</h2>
<p>Créez ensuite un <em>bundle</em> qui contiendra votre application en tapant la commande suivante à la racine de votre projet Symfony:</p>
<p><code>$ php app/console generate:bundle</code></p>
<p>Et répondez aux question posées par le générateur. Pour ma part j&#8217;ai indiqué <em>Dunglas/ChaplinDemoBundle</em> comme namespace et j&#8217;ai laissé les choix par défaut pour toutes les autres options.</p>
<h2>Installation de Chaplin.js, de Backbone.js et de leurs dépendances</h2>
<p>Téléchargez maintenant le <em>boilerplate </em>Chaplin.js, <a href="https://github.com/chaplinjs/chaplin-boilerplate">version CoffeeScript</a> ou <a href="https://github.com/chaplinjs/chaplin-boilerplate-plain">version JavaScript</a> (cliquez sur le bouton ZIP sur ces pages pour récupérer une archive de la dernière version), décompressez le.</p>
<p>Si vous utilisez la version en pure JavaScript copiez le contenu du répertoire <em>js/</em> dans le dossier <em>Ressources/public/</em> de votre bundle et passez directement à l&#8217;étape d&#8217;installation des assets.</p>
<p>Pour ceux qui préfèrent CoffeeScript copiez le répertoire <em>coffee/</em> de l&#8217;archive dans le répertoire <em>Ressources/</em> du <em>bundle</em> généré à l&#8217;étape précédente et le répertoire <em>js/</em> de l&#8217;archive dans le répertoire <em>Ressources/public/</em> (créez le si il n&#8217;existe pas encore).</p>
<p>Pas besoin de s&#8217;embêter à récupérer toutes les dépendances de Chaplin.js (Backbone.js, Undescore.js, jQuery&#8230;) elles sont déjà incluses dans le <em>boilerplate</em>.</p>
<p>Voici la structure que doit avoir le répertoire <em>Ressources/</em> de votre bundle après la copie des dossiers issus du <em>boilerplate</em> Chaplin :</p>
<ul>
<li><em>coffee/</em> : code CoffeeScript de votre application, ne sera pas accessible depuis le serveur web</li>
<li><em>public/</em>
<ul>
<li><em>js/</em> :  code JavaScript compilé de votre application
<ul>
<li><em>vendor/</em> : bibliothèques JavaScript tiers utilisées par votre application (dépendances)</li>
<li><em>templates/</em> : les templates Handlebars.js</li>
</ul>
</li>
</ul>
</li>
<li><em>views/</em> : les templates Twig</li>
</ul>
<p>Ouvrez un terminal dans le répertoire <em>Ressources/</em> de votre bundle et lancer la commande suivante :</p>
<p><code>$ coffee --watch --bare --output public/js/ coffee/</code></p>
<p>L&#8217;argument <em>&#8211;watch</em> permet la recompilation automatique en JavaScript des fichiers CoffeeScript dès qu&#8217;ils sont modifiés et  &#8211;bare supprime l&#8217;encapsulation automatique dans une fonction (nécessaire à Chaplin.js).</p>
<p>Installez maintenant les fichiers statiques de notre bundle contenant Chaplin.js dans le répertoire <em>web</em> du projet en utilisant un lien symbolique afin ne pas avoir à répéter la manipulation lors de chaque changement apporté au code du client :</p>
<p><code>$ php app/console assets:install --symlink</code></p>
<h2>Un peu de ménage</h2>
<p>Si ce n&#8217;est pas encore fait supprimez les routes de démonstration créez lors de l&#8217;installation de Symfony. Il s&#8217;agit de <em>_welcome</em>, <em>_demo_secured</em> et <em>_demo</em> dans le fichier <em><em>app/config/routing_dev.yml</em></em>.</p>
<p>Supprimez la ligne qui charge le DemoBundle du fichier <em>config/AppKernel.php</em> :</p>
<blockquote><p>$bundles[] = new Acme\DemoBundle\AcmeDemoBundle();</p></blockquote>
<p>Supprimez maintenant le DemoBundle lui même (répertoire <em>src/Acme/)</em>.</p>
<h2>Création de la page chargeant le code JavaScript</h2>
<p>Pour initialiser notre SPA, il va nous falloir créer une page qui charge notre application JavaScript.</p>
<p>Commençons par adapter le controlleur par défaut de notre bundle. Remplacez le contenu de  <em>src/Dunglas/ChaplinDemoBundle/Controller/DefaultController.php</em> par :</p>
<script src="https://gist.github.com/4398277.js"></script><noscript><p>View the code on <a href="https://gist.github.com/4398277">Gist</a>.</p></noscript>
<p>L&#8217;action <em>index</em> assignée à la route <em>/</em> se contente de charger la template <em>index.html.twig</em>. Remplaçons le contenu de <em>Ressources/views/Default/index.html.twig</em> par une version adaptée à Twig et à Symfony de la page <em>index.html</em> fournie avec le <em>boilerplate</em> Chaplin.js :</p>
<script src="https://gist.github.com/4402442.js"></script><noscript><p>View the code on <a href="https://gist.github.com/4402442">Gist</a>.</p></noscript>
<p>J&#8217;ai apporté quelques petites modifications relatives à Symfony.</p>
<p>Ligne 18 j&#8217;utilise <a href="http://symfony.com/doc/current/cookbook/assetic/index.html">Assetic</a> pour charger Require.js au bon endroit dans la structure de répertoires Symfony.</p>
<p>De la même manière ligne 25 j&#8217;indique à Chaplin.js ou trouver les fichiers JavaScript compilés.</p>
<p>Ligne 51 si l&#8217;application est en mod développement je contourne le cache navigateur en passant l&#8217;heure actuelle en paramètre GET de tous les fichiers JavaScript chargés afin de ne pas avoir à appuyer frénétiquement sut &#8220;Cmd + r&#8221; à chaque modification.</p>
<p>Puis ligne 56 je passe en paramètre de notre application je chemin vers la racine de notre projet pour que le Router de Chaplin.js fonctionne toujours même si le projet est en mode développement (fichier app_dev.php) ou que l&#8217;on utilise pas l&#8217;application par défaut.</p>
<p>Cette modification en entraine d&#8217;autres dans le fichier <em>Ressources/coffee/hello_world_application.coffee</em> :</p>
<script src="https://gist.github.com/4412016.js"></script><noscript><p>View the code on <a href="https://gist.github.com/4412016">Gist</a>.</p></noscript>
<p>Ligne 12 j&#8217;ajoute un constructeur qui prend en paramètre une propriété contenant le chemin relatif vers la racine du projet.</p>
<p>Ligne 31 j&#8217;utilise cette propriété pour initialiser le routeur de Chaplin.js</p>
<p>Chargez la page d&#8217;accueil de votre application dans en navigateur ou /app_dev.php en mode développement. Si tout est OK vous devez voir apparaitre &#8220;Hello World!&#8221; en bas de la page.</p>
<p>Symfony, Backbone.js et Chaplin.js sont maintenant installés et configurés pour fonctionner ensembles. Nous avons une bonne base pour construire une application web moderne.</p>
<p>Il faudra tout de même adapté cette template pour charger les fichiers JavaScript <a href="http://requirejs.org/docs/optimization.html">optimisés avec r.js</a> en production car comme vous l&#8217;aurez remarqué, je n&#8217;utilise Assetic, l&#8217;excellent gestionnaire d&#8217;<em>assets</em> fourni en standard avec Symfony, que pour charger require.js.</p>
<p>La compilation des fichiers Coffee et l&#8217;import des modules AMD n&#8217;est pas faite par ce biais. Un bundle existe pourtant pour cela, <a href="https://github.com/hearsayit/HearsayRequireJSBundle">HearsayRequireJSBundle</a>, mais il ne semble plus maintenu et supporte assez mal CoffeeScript. Il m&#8217;a semblé plus simple pour ce tutoriel d&#8217;utiliser directement require.js et le compilateur CoffeScript.</p>
<h2>A la prochaine</h2>
<p>Dans le prochain article j&#8217;irais un peu plus loin en réutilisant cette installation pour développer un petit moteur de microblogging. Nous réaliserons une API REST compatible avec Backbone.js à l&#8217;aide des bundles Symfony FOSRest et JMSSerializer puis je présenterais la partie client s&#8217;y connectant bâtie avec Chaplin.js.</p>
<p>Edit : J&#8217;ai finalement décidé de réaliser <a href="http://dunglas.fr/2013/02/symfony-2-backbone-js-et-chaplin-js-une-implementation-de-todomvc/">une implémentation de TodoMVC à l&#8217;aide Symfony, Backbone et Chaplin</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dunglas?a=C9j35Fvj9X0:xYGU8tVUEmM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=C9j35Fvj9X0:xYGU8tVUEmM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=C9j35Fvj9X0:xYGU8tVUEmM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dunglas?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=C9j35Fvj9X0:xYGU8tVUEmM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dunglas?i=C9j35Fvj9X0:xYGU8tVUEmM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=C9j35Fvj9X0:xYGU8tVUEmM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dunglas?i=C9j35Fvj9X0:xYGU8tVUEmM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=C9j35Fvj9X0:xYGU8tVUEmM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dunglas?i=C9j35Fvj9X0:xYGU8tVUEmM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=C9j35Fvj9X0:xYGU8tVUEmM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dunglas?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=C9j35Fvj9X0:xYGU8tVUEmM:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/dunglas?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=C9j35Fvj9X0:xYGU8tVUEmM:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/dunglas?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=C9j35Fvj9X0:xYGU8tVUEmM:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=C9j35Fvj9X0:xYGU8tVUEmM:KwTdNBX3Jqk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dunglas/~4/C9j35Fvj9X0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dunglas.fr/2012/12/utiliser-chaplin-js-et-backbone-js-avec-symfony-2-installation-et-configuration/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
			<coop:keyword><![CDATA[PHP]]></coop:keyword>
		<coop:keyword><![CDATA[Symfony]]></coop:keyword>
	<feedburner:origLink>http://dunglas.fr/2012/12/utiliser-chaplin-js-et-backbone-js-avec-symfony-2-installation-et-configuration/</feedburner:origLink></item>
		<item>
		<title>Une doc (spartiate) pour le support MongoDB de l’admin Sonata pour Symfony 2</title>
		<link>http://feedproxy.google.com/~r/dunglas/~3/v5owa4KLrFc/</link>
		<comments>http://dunglas.fr/2012/12/une-doc-spartiate-pour-sonatadoctrinemongodbadminbundle/#comments</comments>
		<pubDate>Wed, 05 Dec 2012 14:06:33 +0000</pubDate>
		<dc:creator>Kévin Dunglas</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[Sonata]]></category>

		<guid isPermaLink="false">http://dunglas.fr/?p=624</guid>
		<description><![CDATA[Il y&#8217;a plus d&#8217;un an déjà j&#8217;ai contribué le support de MongoDB au générateur d&#8217;admintration Sonata pour Symfony2. Le projet n&#8217;était jusque le pas du tout documenté,  j&#8217;ai donc mis en ligne une petite documentation inspirée de celle du composant pour &#8230; Continue reading &#8594;]]></description>
				<content:encoded><![CDATA[<p>Il y&#8217;a plus d&#8217;un an déjà j&#8217;ai contribué <a href="https://github.com/sonata-project/SonataDoctrineMongoDBAdminBundle">le support de MongoDB</a> au générateur d&#8217;admintration <a href="http://sonata-project.org/">Sonata</a> pour <a href="http://symfony.com/">Symfony2</a>.</p>
<p>Le projet n&#8217;était jusque le pas du tout documenté,  j&#8217;ai donc mis en ligne <a href="https://github.com/sonata-project/SonataDoctrineMongoDBAdminBundle/tree/master/Resources/doc">une petite documentation</a> inspirée de celle du composant pour l&#8217;ORM. Attention, elle s&#8217;affiche mal sur GitHub à cause du format RST, il faut télécharger les fichiers.</p>
<p>J&#8217;en ai également profité pour corriger le <em>composer.json</em> qui ne fonctionnait plus et je publierais bientôt sous licence libre la démo d&#8217;un tout petit moteur de blog qui utilise <a href="http://www.mongodb.org/">MongoDB</a> et l&#8217;admin Sonata, en espérant que ça puisse servir à quelques-uns.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/dunglas?a=v5owa4KLrFc:COLoRdJkyjs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=v5owa4KLrFc:COLoRdJkyjs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=v5owa4KLrFc:COLoRdJkyjs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/dunglas?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=v5owa4KLrFc:COLoRdJkyjs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/dunglas?i=v5owa4KLrFc:COLoRdJkyjs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=v5owa4KLrFc:COLoRdJkyjs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/dunglas?i=v5owa4KLrFc:COLoRdJkyjs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=v5owa4KLrFc:COLoRdJkyjs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/dunglas?i=v5owa4KLrFc:COLoRdJkyjs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=v5owa4KLrFc:COLoRdJkyjs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/dunglas?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=v5owa4KLrFc:COLoRdJkyjs:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/dunglas?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=v5owa4KLrFc:COLoRdJkyjs:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/dunglas?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/dunglas?a=v5owa4KLrFc:COLoRdJkyjs:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/dunglas?i=v5owa4KLrFc:COLoRdJkyjs:KwTdNBX3Jqk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/dunglas/~4/v5owa4KLrFc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://dunglas.fr/2012/12/une-doc-spartiate-pour-sonatadoctrinemongodbadminbundle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[PHP]]></coop:keyword>
		<coop:keyword><![CDATA[Programmation]]></coop:keyword>
		<coop:keyword><![CDATA[Symfony]]></coop:keyword>
		<coop:keyword><![CDATA[admin]]></coop:keyword>
		<coop:keyword><![CDATA[MongoDB]]></coop:keyword>
		<coop:keyword><![CDATA[Sonata]]></coop:keyword>
	<feedburner:origLink>http://dunglas.fr/2012/12/une-doc-spartiate-pour-sonatadoctrinemongodbadminbundle/</feedburner:origLink></item>
	</channel>
</rss><!-- This Quick Cache file was built for (  dunglas.fr/feed/ ) in 0.87102 seconds, on May 19th, 2013 at 4:59 pm UTC. --><!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on May 19th, 2013 at 5:59 pm UTC --><!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><!-- Quick Cache Is Fully Functional :-) ... A Quick Cache file was just served for (  dunglas.fr/feed/ ) in 0.00080 seconds, on May 19th, 2013 at 5:45 pm UTC. -->
