<?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>Programmazione Web &#187; smarty tpl</title>
	<atom:link href="http://www.programmazione-web.com/tag/smarty-tpl/feed" rel="self" type="application/rss+xml" />
	<link>http://www.programmazione-web.com</link>
	<description>il Blog open degli sviluppatori del web!</description>
	<lastBuildDate>Mon, 25 Jul 2011 16:39:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Template engine, smarty, ma sono utili su framework MVC?</title>
		<link>http://www.programmazione-web.com/template-engine-smarty-sono-utili-framework-mvc.php</link>
		<comments>http://www.programmazione-web.com/template-engine-smarty-sono-utili-framework-mvc.php#comments</comments>
		<pubDate>Sun, 01 Mar 2009 13:00:24 +0000</pubDate>
		<dc:creator>neryo</dc:creator>
				<category><![CDATA[Design pattern]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Programmare Php]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[framework mvc]]></category>
		<category><![CDATA[pattern MVC]]></category>
		<category><![CDATA[programmazione object oriented]]></category>
		<category><![CDATA[smarty tpl]]></category>
		<category><![CDATA[template language]]></category>
		<category><![CDATA[web templates]]></category>

		<guid isPermaLink="false">http://www.programmazione-web.com/?p=189</guid>
		<description><![CDATA[Sono utili i motori di template come smarty usando i framework MVC? In ambiente PHP così come in altri ambienti, sono delle classi che consentono ai grafici di interagire con il codice sviluppato dai programmatori senza per questo dover acquisire competenze specifiche sul linguaggio di programmazione utilizzato.]]></description>
			<content:encoded><![CDATA[<p>Lo<strong> sviluppo web</strong> in questi ultimi anni ha introdotto notevoli migliorie sotto l&#8217;aspetto di progettazione e programmazione.. si e&#8217; passati da uno s<strong>viluppo funzionale</strong> ad una programmazione completamente <strong>object oriented</strong>, si utilizzano ora sempre piu&#8217; <strong>pattern di sviluppo basati sul concetto MVC</strong>, appoggiandosi a diversi <strong>framework php</strong> (codeigniter, cakephp, symphony, zend ecc ecc..), ottenendo codice piu&#8217; organizzato e ben strutturato, quindi maggiore controllo e velocita&#8217; di sviluppo, separazione logica ed estensibilita&#8217;, uno standard di sviluppo.. insomma molti vantaggi rispetto a quando si creavano files confusi di codice html innestati a query php, cicli e migliaia di controlli sparsi in tutte le pagine con includes di centinaia di funzioni di libreria poco organizzate.. che una volta fatti e poi lasciati nel dimenticatoio, quando bisognava modificarli poi diventava necessario fare un brainstorming per capire la logica con cui erano stati concepiti.. figuriamoci se il codice era sviluppato da qualcun altro che non usava i nostri schemi.</p>
<p>Ora come sappiamo, grazie al <strong>pattern MVC e ai framework opensource php</strong> si ha modo di organizzare il codice al meglio, separando completamente la logica applicativa dalla parte di modello di accesso ai dati del database e dalla parte di presentazione dei dati sulle viste.</p>
<p>Fino qua tutto bene e vedo solo dei vantaggi che non voglio ripetere, ma parliamo ora del ruolo dei <strong>template language.. smarty tpl </strong>per citarne uno<strong>.. </strong> che sono ormai spesso presenti <strong>nei CMS di ultima generazione</strong> e vengono spesso propinati per rendere la vita piu&#8217; facile a chi progetta interfaccie web&#8230; Sinceramente fatico a capire che grossi vantaggi possono offrire questi <strong>pseudo linguaggi</strong>, che sono nati appunto per rendere la vita piu&#8217; semplice a chi deve mettere le mani sulle viste, tentando di ridurre il gap tra gli sviluppatori, i web designer e i grafici.. questo nell&#8217;ottica di team di sviluppo medio grandi dove sono solitamente sono i web designer a mettere le mani sulla parte frontend dei layout.</p>
<p>Questi <strong>motori di template</strong>, in ambiente PHP così come in altri ambienti, sono delle classi che consentono ai grafici di interagire con il codice sviluppato dai programmatori senza per questo dover acquisire competenze specifiche sul linguaggio di programmazione utilizzato&#8230; questo e&#8217; vero se si dimentica che il grafico invece di capire come estrapolare il codice da un array in php tramite un foreach, dovra&#8217; imparare ad usare un linguaggio diverso con costrutti simili (foreach, loop) e non molto piu&#8217; semplici, per poi fare la stessa cosa con un array di dati in smarty.</p>
<p>Quindi nell&#8217;ottica di utilizzo di un <strong>framework MVC</strong> che ha gia&#8217; dentro il concetto di vista e gia&#8217; separa adeguatamente la parte di presentazione dalle query al database e dalla logica applicativa, risulta inutile secondo me appoggiarsi a queste classi, che appesantiscono a livello prestazionale il codice per introdurre un nuovo linguaggio, che ha le medesime difficolta&#8217; dal punto programmativo quando si maneggiano strutture dati semplici come array (ovvero quello che ci dovremmo trovare nelle viste).</p>
<p>Quindi quali sono i <strong>vantaggi nello scrivere codice delle viste in tpl? </strong>Cambia la sintassi, non sono piu&#8217; semplici e bisogna imparare un nuovo linguaggio, si introducono nuove classi quindi piu&#8217; righe di codice da eseguire <strong>rallentando le prestazioni del software</strong> e come ripeto se si lavora su framework MVC si ha gia&#8217; una separazione logica delle viste, percui non ha senso neanche per la sepazione della business logic&#8230;</p>
<p>Li buttiamo a mare questi tpl?</p>
<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.programmazione-web.com%2Ftemplate-engine-smarty-sono-utili-framework-mvc.php&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe>]]></content:encoded>
			<wfw:commentRss>http://www.programmazione-web.com/template-engine-smarty-sono-utili-framework-mvc.php/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

