<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Commentaires sur : A quoi sert un moteur de template pour PHP ?</title>
	<atom:link href="http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/</link>
	<description>Le blog sans prétentions d&#039;Olivier Mansour</description>
	<lastBuildDate>Tue, 07 Feb 2012 21:45:03 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Par : Romain BOYER</title>
		<link>http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/comment-page-1/#comment-1217</link>
		<dc:creator>Romain BOYER</dc:creator>
		<pubDate>Fri, 06 Feb 2009 09:29:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.glagla.org/weblog/?p=663#comment-1217</guid>
		<description>Remarque, j&#039;ai vu que tu faisais un lien vers cette page qui pointe vers Savant3, qui est justement le moteur de template best-used avec SolarPHP, c&#039;est ce moteur-là que tu dois affectionner j&#039;imagine :)</description>
		<content:encoded><![CDATA[<p>Remarque, j&#8217;ai vu que tu faisais un lien vers cette page qui pointe vers Savant3, qui est justement le moteur de template best-used avec SolarPHP, c&#8217;est ce moteur-là que tu dois affectionner j&#8217;imagine :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Romain BOYER</title>
		<link>http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/comment-page-1/#comment-1216</link>
		<dc:creator>Romain BOYER</dc:creator>
		<pubDate>Fri, 06 Feb 2009 09:24:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.glagla.org/weblog/?p=663#comment-1216</guid>
		<description>Olivier,

tu t&#039;entendrais bien avec un contact à moi dont un des contacts, ex-contributeur de Zend, a monté le Framework SolarPHP. Je te conseille de regarder de ce côté-là, tu pourrais aimer ;)

Rom&#039;s</description>
		<content:encoded><![CDATA[<p>Olivier,</p>
<p>tu t&#8217;entendrais bien avec un contact à moi dont un des contacts, ex-contributeur de Zend, a monté le Framework SolarPHP. Je te conseille de regarder de ce côté-là, tu pourrais aimer ;)</p>
<p>Rom&#8217;s</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Olivier Mansour</title>
		<link>http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/comment-page-1/#comment-1212</link>
		<dc:creator>Olivier Mansour</dc:creator>
		<pubDate>Sun, 25 Jan 2009 18:46:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.glagla.org/weblog/?p=663#comment-1212</guid>
		<description>Merci Damien pour ton éclairage. Je suis également d&#039;acc avec NiKo.

Le mécanisme que tu décris pour eZP est sensiblement le même que celui mis en place par Symfony, toutefois il affecte la partie contrôleur et permet encore d&#039;utiliser la syntaxe PHP dans le template. Perso je trouve le mécanisme de template de eZP carrément infâme ;-).</description>
		<content:encoded><![CDATA[<p>Merci Damien pour ton éclairage. Je suis également d&#8217;acc avec NiKo.</p>
<p>Le mécanisme que tu décris pour eZP est sensiblement le même que celui mis en place par Symfony, toutefois il affecte la partie contrôleur et permet encore d&#8217;utiliser la syntaxe PHP dans le template. Perso je trouve le mécanisme de template de eZP carrément infâme ;-).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Damien</title>
		<link>http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/comment-page-1/#comment-1211</link>
		<dc:creator>Damien</dc:creator>
		<pubDate>Sun, 25 Jan 2009 15:00:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.glagla.org/weblog/?p=663#comment-1211</guid>
		<description>A mon avis, le premier point est celui soulevé par NiKo à savoir imposer la séparation vue/traitements même si certains développeurs trouvent quand même le moyen de faire des trucs horribles en implémentant des opérateurs de templates complètement aberrants (je le vois souvent sur des projets eZ Publish par exemple).

Sinon un moteur de template peut aussi dans certains cas apporter une sécurité supplémentaire comme c&#039;est le cas par exemple avec le composant Template des eZ Components. En effet, à l&#039;initialisation du moteur de template, on lui passe un &quot;context&quot; qui va être chargé &quot;d&#039;échapper&quot; les données sorties par le template, ainsi avec le contexte &quot;xhtml&quot;, les variables affichées par le template sont systématiquement passées par la fonction htmlspecialchars() sauf demande contraire par le développeur ce qui permet de réduire la possibilité de faille par XSS par exemple.</description>
		<content:encoded><![CDATA[<p>A mon avis, le premier point est celui soulevé par NiKo à savoir imposer la séparation vue/traitements même si certains développeurs trouvent quand même le moyen de faire des trucs horribles en implémentant des opérateurs de templates complètement aberrants (je le vois souvent sur des projets eZ Publish par exemple).</p>
<p>Sinon un moteur de template peut aussi dans certains cas apporter une sécurité supplémentaire comme c&#8217;est le cas par exemple avec le composant Template des eZ Components. En effet, à l&#8217;initialisation du moteur de template, on lui passe un &laquo;&nbsp;context&nbsp;&raquo; qui va être chargé &laquo;&nbsp;d&#8217;échapper&nbsp;&raquo; les données sorties par le template, ainsi avec le contexte &laquo;&nbsp;xhtml&nbsp;&raquo;, les variables affichées par le template sont systématiquement passées par la fonction htmlspecialchars() sauf demande contraire par le développeur ce qui permet de réduire la possibilité de faille par XSS par exemple.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Olivier Mansour</title>
		<link>http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/comment-page-1/#comment-1204</link>
		<dc:creator>Olivier Mansour</dc:creator>
		<pubDate>Sat, 24 Jan 2009 22:02:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.glagla.org/weblog/?p=663#comment-1204</guid>
		<description>&quot;tu peux faire des boucles SPIP sans la moindre connaissance de PHP&quot;, en effet ... mais il faut avoir des compétences en boucle SPIP ! c&#039;est tout de même plus rare ;-)</description>
		<content:encoded><![CDATA[<p>&laquo;&nbsp;tu peux faire des boucles SPIP sans la moindre connaissance de PHP&nbsp;&raquo;, en effet &#8230; mais il faut avoir des compétences en boucle SPIP ! c&#8217;est tout de même plus rare ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : NiCoS</title>
		<link>http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/comment-page-1/#comment-1203</link>
		<dc:creator>NiCoS</dc:creator>
		<pubDate>Sat, 24 Jan 2009 20:14:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.glagla.org/weblog/?p=663#comment-1203</guid>
		<description>... et accessoirement, ça permet à ce que l&#039;intégrateur n&#039;ait pas nécessairement de compétences PHP... tu peux faire des boucles SPIP sans la moindre connaissance de PHP, idem pour Django (même si la logique est assez pythonique à certains égards) ;-)

Pour revenir sur la partie DB, tout dépend ou tu mets la frontière entre template et le reste... C&#039;est juste que je ai lu ce point en lisant la liste des 19 moteurs énoncés... C&#039;est clair que c&#039;est pas le meilleur exemple de fonctionnalités d&#039;un moteur de template... :-P</description>
		<content:encoded><![CDATA[<p>&#8230; et accessoirement, ça permet à ce que l&#8217;intégrateur n&#8217;ait pas nécessairement de compétences PHP&#8230; tu peux faire des boucles SPIP sans la moindre connaissance de PHP, idem pour Django (même si la logique est assez pythonique à certains égards) ;-)</p>
<p>Pour revenir sur la partie DB, tout dépend ou tu mets la frontière entre template et le reste&#8230; C&#8217;est juste que je ai lu ce point en lisant la liste des 19 moteurs énoncés&#8230; C&#8217;est clair que c&#8217;est pas le meilleur exemple de fonctionnalités d&#8217;un moteur de template&#8230; :-P</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Olivier Mansour</title>
		<link>http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/comment-page-1/#comment-1202</link>
		<dc:creator>Olivier Mansour</dc:creator>
		<pubDate>Sat, 24 Jan 2009 11:37:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.glagla.org/weblog/?p=663#comment-1202</guid>
		<description>excellente remarque NiKo ! En effet, je n&#039;avais pas noté cet aspect. 

merci bcp</description>
		<content:encoded><![CDATA[<p>excellente remarque NiKo ! En effet, je n&#8217;avais pas noté cet aspect. </p>
<p>merci bcp</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : NiKo</title>
		<link>http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/comment-page-1/#comment-1200</link>
		<dc:creator>NiKo</dc:creator>
		<pubDate>Sat, 24 Jan 2009 10:30:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.glagla.org/weblog/?p=663#comment-1200</guid>
		<description>Olivier, je pense que l&#039;intérêt principal d&#039;un moteur de template est *d&#039;imposer* la séparation entre la gestion de la présentation et le reste des activités de développement ; en effet, en utilisant PHP comme moteur de templates, tu autorises l&#039;intégrateur ou le développeur à coder n&#039;importe quoi puisqu&#039;il dispose alors de toute la puissance du langage pour mettre à mal une architecture MVC par exemple.

Chez Sensio en audit on prend peur en voyant certains abus dans les templates symfony, genre des instanciationsde Criteria Propel ou carrément de l&#039;algorhythmique...

Je pense d&#039;ailleurs qu&#039;en symfony 2 nous aurons par défaut un moteur de templates du type de celui qui existe chez Django, tout en conservant la possibilité d&#039;utiliser PHP pour ceux qui maîtrisent entièrement la compétence des intervenants sur la couche présentation.</description>
		<content:encoded><![CDATA[<p>Olivier, je pense que l&#8217;intérêt principal d&#8217;un moteur de template est *d&#8217;imposer* la séparation entre la gestion de la présentation et le reste des activités de développement ; en effet, en utilisant PHP comme moteur de templates, tu autorises l&#8217;intégrateur ou le développeur à coder n&#8217;importe quoi puisqu&#8217;il dispose alors de toute la puissance du langage pour mettre à mal une architecture MVC par exemple.</p>
<p>Chez Sensio en audit on prend peur en voyant certains abus dans les templates symfony, genre des instanciationsde Criteria Propel ou carrément de l&#8217;algorhythmique&#8230;</p>
<p>Je pense d&#8217;ailleurs qu&#8217;en symfony 2 nous aurons par défaut un moteur de templates du type de celui qui existe chez Django, tout en conservant la possibilité d&#8217;utiliser PHP pour ceux qui maîtrisent entièrement la compétence des intervenants sur la couche présentation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Olivier Mansour</title>
		<link>http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/comment-page-1/#comment-1199</link>
		<dc:creator>Olivier Mansour</dc:creator>
		<pubDate>Sat, 24 Jan 2009 09:14:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.glagla.org/weblog/?p=663#comment-1199</guid>
		<description>Merci pour vos retours 

@Nicos : si on utilise un moteur de template pour te connecter à ta DB on est clairement à coté de MVC ce qui est bien dommage aujourd&#039;hui. Je ne suis pas 100% d&#039;accord avec toi sur le fait que cela peut être utile dans le cas  d&#039;un applicatif comme SPIP mais c&#039;est vrai que du point de vue de l&#039;intégrateur cela peut paraître plus simple.

@Damien : je me suis sûrement mal exprimé, je ne critique pas le concept de template, je critique le fait de ne pas utiliser PHP pour le faire, ou plutôt le fait de surcharger PHP d&#039;un autre langage imposant d&#039;autres concepts. D&#039;ailleurs, la casi totalité des frameworks PHP5 utilisent PHP pour leur système de vues.

A ce propos, je vous conseille la lecture ce vieil article : 
http://lutt.se/blog/2006/08/13/why-template-engines-like-smarty-sucks-in-php.html</description>
		<content:encoded><![CDATA[<p>Merci pour vos retours </p>
<p>@Nicos : si on utilise un moteur de template pour te connecter à ta DB on est clairement à coté de MVC ce qui est bien dommage aujourd&#8217;hui. Je ne suis pas 100% d&#8217;accord avec toi sur le fait que cela peut être utile dans le cas  d&#8217;un applicatif comme SPIP mais c&#8217;est vrai que du point de vue de l&#8217;intégrateur cela peut paraître plus simple.</p>
<p>@Damien : je me suis sûrement mal exprimé, je ne critique pas le concept de template, je critique le fait de ne pas utiliser PHP pour le faire, ou plutôt le fait de surcharger PHP d&#8217;un autre langage imposant d&#8217;autres concepts. D&#8217;ailleurs, la casi totalité des frameworks PHP5 utilisent PHP pour leur système de vues.</p>
<p>A ce propos, je vous conseille la lecture ce vieil article :<br />
<a href="http://lutt.se/blog/2006/08/13/why-template-engines-like-smarty-sucks-in-php.html" rel="nofollow">http://lutt.se/blog/2006/08/13/why-template-engines-like-smarty-sucks-in-php.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Damien</title>
		<link>http://www.glagla.org/weblog/2009/01/23/a-quoi-sert-un-moteur-de-template-pour-php/comment-page-1/#comment-1198</link>
		<dc:creator>Damien</dc:creator>
		<pubDate>Sat, 24 Jan 2009 07:59:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.glagla.org/weblog/?p=663#comment-1198</guid>
		<description>Euh moi, c&#039;est la tienne de réflexion que je ne comprends pas :)
Un moteur de template PHP permet de faire un début de séparation du code et de la présentation.

Après, avec les nombreux frameworks qui existent, un moteur de templates n&#039;est pas forcément utile vu qu&#039;ils en implémentent tous un.
Mais tout développeur peut préférer implémenter sa propre structure, c&#039;est son choix.

Si par ne pas comprendre l&#039;intérêt d&#039;un moteur de templates, tu veut dire que tu n&#039;utilise rien. Ni moteur, ni framework (ce dont je doute cependant) alors la, c&#039;est vraiment toi que je ne comprends pas :)</description>
		<content:encoded><![CDATA[<p>Euh moi, c&#8217;est la tienne de réflexion que je ne comprends pas :)<br />
Un moteur de template PHP permet de faire un début de séparation du code et de la présentation.</p>
<p>Après, avec les nombreux frameworks qui existent, un moteur de templates n&#8217;est pas forcément utile vu qu&#8217;ils en implémentent tous un.<br />
Mais tout développeur peut préférer implémenter sa propre structure, c&#8217;est son choix.</p>
<p>Si par ne pas comprendre l&#8217;intérêt d&#8217;un moteur de templates, tu veut dire que tu n&#8217;utilise rien. Ni moteur, ni framework (ce dont je doute cependant) alors la, c&#8217;est vraiment toi que je ne comprends pas :)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

