<?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>Selva Binária &#187; Smarty</title>
	<atom:link href="http://www.selvabinaria.com/tag/smarty/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.selvabinaria.com</link>
	<description>Programação, Tecnologia e Geek things!</description>
	<lastBuildDate>Thu, 08 Jul 2010 15:33:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Desenvolvendo páginas PHP utilizando o Smarty Templates</title>
		<link>http://www.selvabinaria.com/2008/12/08/desenvolvendo-paginas-php-utilizando-o-smarty-templates/</link>
		<comments>http://www.selvabinaria.com/2008/12/08/desenvolvendo-paginas-php-utilizando-o-smarty-templates/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 06:52:04 +0000</pubDate>
		<dc:creator>corintho</dc:creator>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Smarty]]></category>

		<guid isPermaLink="false">http://blog.corinthoneto.com.br/?p=6</guid>
		<description><![CDATA[Olá pessoal. Hoje vou estrear neste blog o primeiro artigo sobre programação PHP, e nada melhor do que começar do básico (mas nada de hello world! aqui). Vou considerar aqui que o programador já conhece a sintaxe básica do PHP, bem como a utilização de variáveis, constantes, includes, requires e etc. O Smarty é uma [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.selvabinaria.com%2F2008%2F12%2F08%2Fdesenvolvendo-paginas-php-utilizando-o-smarty-templates%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.selvabinaria.com%2F2008%2F12%2F08%2Fdesenvolvendo-paginas-php-utilizando-o-smarty-templates%2F&amp;source=corinthoneto&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<div><img src="http://www.smarty.net/gifs/smarty-logo-orange.gif" alt="" /></p>
<p>Olá pessoal. Hoje vou estrear neste blog o primeiro artigo sobre programação PHP, e nada melhor do que começar do básico (mas nada de hello world! aqui). Vou considerar aqui que o programador já conhece a sintaxe básica do PHP, bem como a utilização de variáveis, constantes, includes, requires e etc. O <strong>Smarty</strong> é uma <strong>classe</strong> para o PHP, que permite separar todo o código PHP do código HTML, CSS, Javascript, etc.</p>
<p>Dessa forma podemos organizar muito melhor nossas aplicações, bem como melhorar bastante o desempenho da mesma, visto que todo o processamento fica onde deve ficar<span id="more-6"></span>, ou seja, no arquivo PHP, e não embutido no código HTML. Outra vantagem é que se precisarmos um dia alterar todo o layout da página, nossa programação não sofrerá nenhuma alteração, evitando assim o retrabalho no processamento PHP. Vamos ao que interessa!<!--more--></p>
<p><strong><span style="color: #ff6600;">Baixando o Smarty</span></strong> (http://smarty.php.net)<br />
Baixe o arquivo compactado do smarty no endereço acima, utilizei neste artigo a versão <strong>2.6.19.</strong></p>
<p><span style="color: #ff6600;"><strong>Criando a estrutura de diretórios<br />
</strong></span><strong></strong><span style="color: #ff6600;"><span style="color: #ffffff;">Depois de baixar o smarty descompacte o mesmo e crie a seguinte estrutura de diretórios:<br />
</span></span></p>
<ul>
<li>raiz_da_aplicação
<ul>
<li>cache (utilizado pelo smarty se configurado para utilizar o cache desta pasta)</li>
<li>configs (se preferir o smarty pode utilizar as configurações desta pasta)</li>
<li>smarty (aqui eu coloquei a pasta descompactada do smarty)
<ul>
<li>demo (uma demonstração que acompanha o smarty)</li>
<li>libs (este é o diretório coração do smarty)</li>
<li>misc (opcional)</li>
<li>unit_test (outro exemplo que vem com o smarty)</li>
</ul>
</li>
<li>templates (este é o diretório onde ficarão nossos arquivos HTML)</li>
<li>templates_c (aqui o smarty gera seus arquivos temporários &#8211; precisa de permissão de escrita)</li>
<li>index.php (nosso arquivo principal da raiz, já utilizando o smarty)</li>
</ul>
</li>
</ul>
<p><strong><span style="color: #ff6600;">Programando o arquivo index.php<br />
</span></strong><span style="color: #ffffff;">Vamos inserir o código para o nosso exemplo:</span></p>
<p><span style="color: #ff0000;">$path</span> = <span style="color: #006600;">&#8220;c:/raiz_da_aplicacao/&#8221;;</span></p>
<p><span style="color: #666666;">/* início variáveis utilizadas no template    */</span><br />
<span style="color: #000099;">require_once</span>(<span style="color: #006600;">&#8220;smarty/libs/Smarty.class.php&#8221;</span>) ;  <span style="color: #666666;">/* classe utilizada no template */</span><br />
<span style="color: #990000;">$smarty</span> = <span style="color: #000099;">new</span> Smarty;<br />
<span style="color: #ffffff;"><span style="color: #990000;">$smarty</span></span><span style="color: #ffffff;">-&gt;path = <span style="color: #990000;">$path</span>;<br />
</span><span style="color: #ffffff;"><span style="color: #990000;">$smarty</span></span><span style="color: #ffffff;">-&gt;template_dir = </span><span style="color: #ffffff;"><span style="color: #990000;">$path</span></span><span style="color: #ffffff;">.<span style="color: #006600;">&#8216;templates/&#8217;</span>;<br />
</span><span style="color: #ffffff;"><span style="color: #990000;">$smarty</span></span><span style="color: #ffffff;">-&gt;compile_dir = </span><span style="color: #ffffff;"><span style="color: #990000;">$path</span></span><span style="color: #ffffff;">.<span style="color: #006600;">&#8216;templates_c/&#8217;</span>;<br />
</span><span style="color: #ffffff;"><span style="color: #990000;">$smarty</span></span><span style="color: #ffffff;">-&gt;config_dir = </span><span style="color: #ffffff;"><span style="color: #990000;">$path</span></span><span style="color: #ffffff;">.<span style="color: #006600;">&#8216;configs/&#8217;</span>;<br />
</span><span style="color: #ffffff;"><span style="color: #990000;">$smarty</span></span><span style="color: #ffffff;">-&gt;cache_dir = </span><span style="color: #ffffff;"><span style="color: #990000;">$path</span></span><span style="color: #ffffff;">.<span style="color: #006600;">&#8216;cache/&#8217;</span>;</span></p>
<p><span style="color: #990000;">$data</span> = <span style="color: #000099;">date</span>(<span style="color: #006600;">&#8220;d/m/Y&#8221;</span>);</p>
<p><span style="color: #ffffff;"><span style="color: #990000;">$smarty</span></span><span style="color: #ffffff;">-&gt;assign(<span style="color: #006600;">&#8220;data&#8221;</span>, <span style="color: #990000;">$data</span>);<br />
</span><span style="color: #ffffff;"><span style="color: #ffffff;"><br />
</span><span style="color: #ffffff;"><span style="color: #990000;">$smarty</span></span><span style="color: #ffffff;">-&gt;display(<span style="color: #006600;">&#8216;index.html&#8217;</span>);</span></span></p>
<p><span style="color: #ff0000;">?&gt;</span></p>
<p><span style="color: #ff6600;"><strong>Vamos a explicação do arquivo:<br />
</strong><span style="color: #ffffff;">Perceba que criei uma variável <strong>$path</strong>, apenas para guardar o caminho físico de nossa aplicação, isso ajuda a facilitar nossa vida na hora que precisamos reescrever este caminho. Em seguida solicitamos pelo <em><strong>require_once</strong> </em>a classe para utilização do smarty. Após chamarmos a classe iniciamos o uso da mesma com o <strong><em>new </em></strong>e passamos para a instância da classe algumas propriedades que também estão definidas como padrão dentro da <strong>classe </strong>smarty, mas resolvi mostrar que podemos &#8220;setar&#8221; as mesmas na hora de utilizar o smarty. Após a configuração e chamada do smarty atribuí a uma variável <strong>$data </strong>a data atual do sistema utilizando a função do PHP <strong>date(). </strong>Veremos que lá em nosso arquivo html, poderemos mostrar o valor desta variável. O comando <strong>$smarty-&gt;assign(&#8220;data&#8221;, $data); </strong>informa que estamos reservando uma variável de nome &#8220;data&#8221; que recebe o valor de $data, esta é nossa variável smarty. Perceba que na função <strong>assign </strong>o <strong>1º parâmetro é o nome da variável smarty</strong> e o <strong>2º parâmetro é o valor</strong>, que neste caso é o valor que está na variáve PHP $data. Por fim o comando <strong>$smarty-&gt;display(&#8216;index.html&#8217;), </strong>informa ao smarty qual o arquivo html que receberá os meus possíveis processamentos e variáveis, e este também é o arquivo que será apresentado na execução de nossa página index.php.</span></span></p>
<p><strong><span style="color: #ff6600;">Criando o arquivo index.html<br />
</span></strong><span style="color: #ff6600;"><span style="color: #ffffff;">Agora vamos colocar o coódigo HTML do arquivo index.html:</span></span></p>
<pre><code>&lt;table width="500" height="300" border="1"&gt;</code>
<code>&lt;tr&gt;</code>
<code>&lt;td&gt;</code>{$data}<code>&lt;/td&gt;</code>
<code>&lt;/tr&gt;</code>
<code>&lt;/table&gt;</code></pre>
<p><span style="color: #ffffff;"><span style="color: #ff0000;"><span style="color: #ff6600;"><strong>Vamos a explicação do arquivo:<br />
</strong><span style="color: #ffffff;">Nenhuma novidade aqui, este é um simples cóidigo HTML. A novidade fica por conta da linha onde aparece <strong>{$data}</strong>. Para isso basta lembrarmos que criamos uma variável com este nome no arquivo php, e agora podemos exibir o valor da mesma dentro do html.</span></span></span></span></p>
<p><strong><span style="color: #ff6600;">Execute o arquivo index.php<br />
</span></strong><span style="color: #ff6600;"><span style="color: #ffffff;">Finalmente você pode chamar a página index.php através do seu navegador. Certamente considero que seu servidor web está devidamente instalado e configurado para rodar páginas PHP. Assim basta escrever no navegador algo do tipo: http://localhost/raiz_da_aplicacao/index.php.</span></span></p>
<p>O que você verá será algo parecido com isso:</p>
<table border="1" width="500">
<tbody>
<tr>
<td>26/02/2008</td>
</tr>
</tbody>
</table>
<p>Bem pessoal espero que gostem deste primeiro post de programação!<br />
Dúvidas: corintho@gmail.com</p>
<p>See ya!!!</p></div>
<h3 class='related_post_title'>Posts Relacionados:</h3>
<ul class='related_post'>
<li><a href='http://www.selvabinaria.com/2010/02/03/facebook-lanca-tecnologia-que-compila-os-codigos-php-e-aumentam-a-performance/' title='Facebook lança tecnologia que &#8220;compila&#8221; os códigos PHP e aumentam a performance'>Facebook lança tecnologia que &#8220;compila&#8221; os códigos PHP e aumentam a performance</a></li>
<li><a href='http://www.selvabinaria.com/2009/08/13/nfephp-nota-fiscal-eletronica-em-php-e-codigo-aberto/' title='NFePHP: Nota Fiscal eletrônica em PHP e código aberto'>NFePHP: Nota Fiscal eletrônica em PHP e código aberto</a></li>
<li><a href='http://www.selvabinaria.com/2009/08/13/revista-espirito-livre-edicao-5-lancada/' title='Revista Espírito Livre edição 5 lançada'>Revista Espírito Livre edição 5 lançada</a></li>
<li><a href='http://www.selvabinaria.com/2009/05/21/nuvem-da-microsoft-windows-azure-agora-com-suporte-a-php-phpazure/' title='Nuvem da Microsoft, Windows Azure, agora com suporte a PHP &#8211; PHPAzure'>Nuvem da Microsoft, Windows Azure, agora com suporte a PHP &#8211; PHPAzure</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.selvabinaria.com/2008/12/08/desenvolvendo-paginas-php-utilizando-o-smarty-templates/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

