<?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>BLOG::Nivaldo &#187; expressao regular</title>
	<atom:link href="http://www.nivaldoarruda.com.br/tag/expressao-regular/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nivaldoarruda.com.br</link>
	<description>Tecnologias Web, PHP e Aquários</description>
	<lastBuildDate>Sun, 29 Aug 2010 23:59:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Dica Rápida: Rotas</title>
		<link>http://www.nivaldoarruda.com.br/2009/06/15/dica-rapida-rotas/</link>
		<comments>http://www.nivaldoarruda.com.br/2009/06/15/dica-rapida-rotas/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 18:06:54 +0000</pubDate>
		<dc:creator>Nivaldo Arruda</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[apostila zend]]></category>
		<category><![CDATA[expressao regular]]></category>
		<category><![CDATA[rota]]></category>
		<category><![CDATA[route]]></category>
		<category><![CDATA[Router_Route]]></category>
		<category><![CDATA[route_regex]]></category>
		<category><![CDATA[url amigavel]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.nivaldoarruda.com.br/?p=448</guid>
		<description><![CDATA[Você ja deve ter percebido que o padrão de url que o ZF utiliza para passar parametros não é muito amigavel para o usuário. Mas, como todo bom framework, existe como corrigir isso utilizando rotas. Adicione as seguintes linhas de códigos para testar as rotas: Iniciando $this-&#62;_front = Zend_Controller_Front::getInstance(); $router = $this-&#62;_front-&#62;getRouter(); Esse código deve [...]

<br/><br/>
<strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/08/26/zend-framework-criando-action-helpers/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; Criando Action Helpers'>Zend Framework &#8211; Criando Action Helpers</a> <small>Conforme eu havia prometido aqui, hoje eu estarei dando continuidade...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/03/22/dica-rapida-decorators/' rel='bookmark' title='Permanent Link: Dica Rápida: Decorators'>Dica Rápida: Decorators</a> <small>Aceitando a sugestão do XAngel irei providenciar um artigo bem...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2010/01/18/dica-php-5-3-apache-2-postgres-e-zend-framework-no-windows-seven/' rel='bookmark' title='Permanent Link: Dica &#8211; PHP 5.3, Apache 2, Postgres e Zend Framework no Windows Seven'>Dica &#8211; PHP 5.3, Apache 2, Postgres e Zend Framework no Windows Seven</a> <small>Estou com a versão de testes do Windows Seven (Home...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id=HOTWordsTxt name=HOTWordsTxt><p>Você ja deve ter percebido que o padrão de url que o ZF utiliza para passar parametros não é muito amigavel para o usuário. Mas, como todo bom framework, existe como corrigir isso utilizando rotas.</p>
<p>Adicione as seguintes linhas de códigos para testar as rotas:</p>
<p><strong>Iniciando</strong></p>
<pre name="code" language="php">$this-&gt;_front = Zend_Controller_Front::getInstance();
$router = $this-&gt;_front-&gt;getRouter();</pre>
<p>Esse código deve ser adicionado no plugin de inicialização do seu sistema (ou no bootstrap, para casos que não o utilizem).<br />
Com o objeto $router em mãos, vamos aos exemplos práticos:</p>
<p><strong>1. Rota simples, sem parâmetros</strong></p>
<pre name="code" language="php">$route = new Zend_Controller_Router_Route('rota/nova', array(
                                                             'module'=&gt;'default',
                                                             'controller' =&gt; 'noticias',
                                                             'action'=&gt; 'index')
                                         );
$router-&gt;addRoute('default.noticias.index', $route);</pre>
<p>para entender melhor esse código, o primeiro parametro é a rota que você vai criar, nesse caso ficaria: http://www.seudominio.com.br/rota/nova os outros parametros são o módulo/controller/action que serão executados. A ultima linha de código é aonde a rota é efetivamente incluida no sistema.</p>
<p><strong>2. Rota simples, com parâmetros</strong></p>
<pre name="code" language="php">$route = new Zend_Controller_Router_Route('usuario/:user', array(
                                                                 'module'=&gt; 'default',
                                                                 'controller' =&gt; 'usuario',
                                                                 'action'=&gt; 'visualizar')
                                         );
$router-&gt;addRoute('default.usuario.visualizar', $route);</pre>
<p>O funcionamento é exatamente igual a anterior, com exceção que agora o que vier depois de &#8220;usuario&#8221; será passado como parametro.</p>
<p><strong>3. Rota com expressão regular</strong></p>
<pre name="code" language="php">$route = new Zend_Controller_Router_Route_Regex('produto/([0-9]+)',array(
                                                                          'module'=&gt; 'default',
                                                                          'controller' =&gt; 'produtos',
                                                                          'action' =&gt; 'detalhes'),
                                                                   array("id" =&gt; 1)
                                                );
$router-&gt;addRoute('default.produtos.detalhes', $route);</pre>
<p>Já deve ter percebido que aonde voce define a rota, existe uma expressão regular entre parenteses. Ela será o nosso parametro agora (que está contido em &#8220;id&#8221;) conforme foi atribuido no array seguinte.</p>
<p><strong>Pegando os parâmetros</strong><br />
No controller, utilize:</p>
<pre name="code" language="php">$this->_getParam("nome_parametro")</pre>
<p>Simples e funcional ^^</p>
</div>

<br/><br/><p><strong>Posts relacionados:</strong><ol><li><a href='http://www.nivaldoarruda.com.br/2009/08/26/zend-framework-criando-action-helpers/' rel='bookmark' title='Permanent Link: Zend Framework &#8211; Criando Action Helpers'>Zend Framework &#8211; Criando Action Helpers</a> <small>Conforme eu havia prometido aqui, hoje eu estarei dando continuidade...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2009/03/22/dica-rapida-decorators/' rel='bookmark' title='Permanent Link: Dica Rápida: Decorators'>Dica Rápida: Decorators</a> <small>Aceitando a sugestão do XAngel irei providenciar um artigo bem...</small></li>
<li><a href='http://www.nivaldoarruda.com.br/2010/01/18/dica-php-5-3-apache-2-postgres-e-zend-framework-no-windows-seven/' rel='bookmark' title='Permanent Link: Dica &#8211; PHP 5.3, Apache 2, Postgres e Zend Framework no Windows Seven'>Dica &#8211; PHP 5.3, Apache 2, Postgres e Zend Framework no Windows Seven</a> <small>Estou com a versão de testes do Windows Seven (Home...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.nivaldoarruda.com.br/2009/06/15/dica-rapida-rotas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
