<?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>Marcelo Rodrigues &#187; Php</title>
	<atom:link href="http://www.marcelomx.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marcelomx.com</link>
	<description>Web Developer</description>
	<lastBuildDate>Wed, 20 Apr 2011 17:49:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>PHPHEDERAL 2011</title>
		<link>http://www.marcelomx.com/2011/04/20/phphederal-2011/</link>
		<comments>http://www.marcelomx.com/2011/04/20/phphederal-2011/#comments</comments>
		<pubDate>Wed, 20 Apr 2011 17:49:06 +0000</pubDate>
		<dc:creator>Marcelo Rodrigues</dc:creator>
				<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[brasilia]]></category>
		<category><![CDATA[df]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[phphederal]]></category>

		<guid isPermaLink="false">http://www.marcelomx.com/?p=130</guid>
		<description><![CDATA[Já foram iniciados os trabalhos para a realização do PHPHEDERAL 2011. E eu faço parte de corpo organizador desta vez junto com a atual coordenação do PHPDF. Vai ser um prazer ajudar a realizar o maior evento PHP do Distrito &#8230; <a href="http://www.marcelomx.com/2011/04/20/phphederal-2011/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Já foram iniciados os trabalhos para a realização do <a href="http://www.phphederal.com.br" target="_blank">PHPHEDERAL 2011</a>. E eu faço parte de corpo organizador desta vez junto com a atual coordenação do <a href="http://www.phpdf.org.br" target="_blank">PHPDF</a>. Vai ser um prazer ajudar a realizar o maior evento PHP do Distrito Federal.</p>
<p>Esse ano a proposta é fazer um evento bem direcionado ao profissional que já trabalha a muitos anos com PHP, com temas voltados a análise, arquitetura, engenharia e qualidade de software. Temas mais atuais, como metodologias ágeis também estão no cardápio.</p>
<p>Apesar de focar nos desenvolvedores mais experientes, por assim dizer, o público iniciante e menos experiente não vai ficar de fora. Palestras, estudos de caso e cursos serão ofertados na grade do evento.</p>
<p>O evento esse ano tem tudo para ser o melhor evento já realizado para os profissionais PHP no DF.</p>
<p>Mais novidades, no <a href="http://www.phphederal.com.br" target="_blank">site do evento</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelomx.com/2011/04/20/phphederal-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPHEDERAL &#8211; Desenvolvimento Orientado a Testes com PHP</title>
		<link>http://www.marcelomx.com/2010/08/02/phphederal-desenvolvimento-orientado-a-testes-com-php/</link>
		<comments>http://www.marcelomx.com/2010/08/02/phphederal-desenvolvimento-orientado-a-testes-com-php/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 02:05:16 +0000</pubDate>
		<dc:creator>Marcelo Rodrigues</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[minicurso]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[phphederal]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://www.marcelomx.com/?p=97</guid>
		<description><![CDATA[Agradecendo ao pessoal que compareceu no 1º PHPHEDERAL, que compareceu e prestigiou o evento. Valeu demais. Ao pessoal que solicitou, estou disponibilizando os slides do minicurso que ministrei. Que esse seja o primeiro de vários. PHPHEDERAL &#8211; Desenvolvimento Orientado a &#8230; <a href="http://www.marcelomx.com/2010/08/02/phphederal-desenvolvimento-orientado-a-testes-com-php/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Agradecendo ao pessoal que compareceu no 1º PHPHEDERAL, que compareceu e prestigiou o evento. Valeu demais.</p>
<p>Ao pessoal que solicitou, estou disponibilizando os slides do minicurso que ministrei. Que esse seja o primeiro de vários.</p>
<div id="__ss_4891304" style="width: 425px;"><strong><a title="PHPHEDERAL - Desenvolvimento Orientado a Testes com PHP" href="http://www.slideshare.net/marcelomx/phphederal-desenvolvimento-orientado-a-testes-com-php-4891304">PHPHEDERAL &#8211; Desenvolvimento Orientado a Testes com PHP</a></strong><object id="__sse4891304" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=desenvolvimentoorientadoatestes-julho2010-phpfederal-100802210823-phpapp02&amp;stripped_title=phphederal-desenvolvimento-orientado-a-testes-com-php-4891304" /><param name="name" value="__sse4891304" /><param name="allowfullscreen" value="true" /><embed id="__sse4891304" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=desenvolvimentoorientadoatestes-julho2010-phpfederal-100802210823-phpapp02&amp;stripped_title=phphederal-desenvolvimento-orientado-a-testes-com-php-4891304" name="__sse4891304" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/marcelomx">Marcelo Rodrigues</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelomx.com/2010/08/02/phphederal-desenvolvimento-orientado-a-testes-com-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Iniciando com desenvolvimento orientado a testes com PHP</title>
		<link>http://www.marcelomx.com/2009/12/28/iniciando-com-desenvolvimento-orientado-a-testes-com-php/</link>
		<comments>http://www.marcelomx.com/2009/12/28/iniciando-com-desenvolvimento-orientado-a-testes-com-php/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 02:00:24 +0000</pubDate>
		<dc:creator>Marcelo Rodrigues</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[mock]]></category>
		<category><![CDATA[phpunit]]></category>
		<category><![CDATA[simpletest]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://www.marcelomx.com/?p=76</guid>
		<description><![CDATA[Esse post é só para &#8220;comentar&#8221; rapidamente sobre um assunto muito pouco explorado em PHP: o Desenvolvimento Orientado a Testes ou, para os mais acostumados, TDD -  Test Driven Development. Recentemente comecei a escrever sobre testes com o php usando &#8230; <a href="http://www.marcelomx.com/2009/12/28/iniciando-com-desenvolvimento-orientado-a-testes-com-php/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Esse post é só para &#8220;comentar&#8221; rapidamente sobre um assunto muito pouco explorado em PHP: o Desenvolvimento Orientado a Testes ou, para os mais acostumados, TDD -  Test Driven Development.</p>
<p>Recentemente comecei a escrever sobre testes com o php usando o PHPUnit. Na empolgação, os textos ficaram gigantes, por isso vou precisar revisar bem antes de publicar. Talvez até separá-los em uma série de artigos.</p>
<p>Enquanto isso, continuo pesquisando e estudando sobre o assunto. Num desses estudos, estava pesquisando sobre Mock Objects, e eis que me deparo com um artigo em português sobre testes com php e, por sinal, muito bom. Embora o framework utilizado nos artigos seja o SimpleTest, que é bem mais simples e menos conhecido que o PHPUnit, não tira o mérito dos textos.</p>
<p>A série de artigos está publicada no Imasters, de autoria do Léo Hackin. Vale a pena acompanhar.</p>
<ul>
<li><a href="http://imasters.uol.com.br/artigo/13569/php/iniciando_com_o_simpletest/" target="_blank">Iniciando com o SimpleTest</a></li>
<li><a href="http://imasters.uol.com.br/artigo/13717/php/agrupando_casos_de_teste_no_simpletest/" target="_blank">Agrupando casos de teste no SimpleTest</a></li>
<li><a title="Mock Objects no SimpleTest" href="http://imasters.uol.com.br/artigo/15259/php/mock_objects_no_simpletest/">Mock Objects no SimpleTest</a></li>
</ul>
<p> <img src='http://www.marcelomx.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelomx.com/2009/12/28/iniciando-com-desenvolvimento-orientado-a-testes-com-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Escrevendo URLs no Zend Framework</title>
		<link>http://www.marcelomx.com/2008/12/30/escrevendo-urls-no-zend-framework/</link>
		<comments>http://www.marcelomx.com/2008/12/30/escrevendo-urls-no-zend-framework/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 18:40:07 +0000</pubDate>
		<dc:creator>Marcelo Rodrigues</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[Helper]]></category>
		<category><![CDATA[Url]]></category>
		<category><![CDATA[View]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.marcelomx.com/?p=36</guid>
		<description><![CDATA[O Zend Framework, assim com os demais frameworks que utilizam o padrão MVC, possui uma estrutura de roteamento para mapear e direcionar corretamente os seus controles e ações de acordo com determinada url requisitada pela aplicação. Também como os demais, &#8230; <a href="http://www.marcelomx.com/2008/12/30/escrevendo-urls-no-zend-framework/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O Zend Framework, assim com os demais frameworks que utilizam o padrão MVC, possui uma estrutura de roteamento para mapear e direcionar corretamente os seus controles e ações de acordo com determinada url requisitada pela aplicação. Também como os demais, possibilita a escrita de urls para estes controles na camada de visualização quando necessário, através dos &#8220;helpers&#8221;.</p>
<p>Infelizmente, o helper responsável pela escrita dessas urls ainda é bastante imaturo. A forma como deve ser feita esta tarefa é trabalhosa, chata e principalmente, improdutiva. Só o fato de ter de indicar &#8220;TODOS&#8221; os parâmetros para a escrita da URL em uma estrutura de array associativa soa como um paradoxo, já que o próprio framework possui mecanismos que fazem o parser na url requisitada, identificando os parâmetros necessários e passando-os ao roteador. Ou seja, é um retrabalho e não um reúso. Exemplo de uma url escrita da forma padrão em um arquivo de template.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">url</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
    <span style="color: #0000ff;">'controller'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'users'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'action'</span>  <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'edit'</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">'id'</span>  <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">25</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>A saída do exemplo será: /users/edit/id/25. Analisando a url, seria mais fácil simplesmente escrever da seguinte forma:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;/users/edit/id/25&quot;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Desta forma o resultado é mais rápido, porém, você perde em termos controle, já que a escrita é manual e se você alterar o nome do controle ou da ação, a url passará a ser inválida (a não ser que você use roteadores customizados).</p>
<p>A maioria dos frameworks, como Symfony, Cake etc, implementam tanto a forma de escrita com os parâmetros em um array, quanto uma string contendo a url desejada, fazendo a conversão automática dos mesmos para o formato padrão do framework ou da aplicação. O Symfony, por exemplo, implementa a escrita da seguinte forma:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> url_for<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'users/edit?id='</span><span style="color: #339933;">.</span> <span style="color: #cc66cc;">25</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>O Symfony automaticamente converterá isso para o formato /users/edit/id/25. Considero essa forma muito mais elegante e produtiva, pois está mais próximo da realidade das urls &#8220;dinâmicas&#8221;. No entanto, se houver mais parâmetros, a coisa já começa a complicar.</p>
<p>Voltando a forma como o Zend Framework implementa este recurso, já se sabe que ele não é tão flexível assim, então é necessário criar um helper na camada de visualização para esta tarefa. Podemos inclusive, aproveitar o que já foi desenvolvido e é padrão do framework e encontra-se na pasta: Zend/View/Helper/Url.php.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #666666; font-style: italic;">#Zend/View/Helper/Url.php
</span>
<span style="color: #000000; font-weight: bold;">class</span> Zend_View_Helper_Url <span style="color: #000000; font-weight: bold;">extends</span> Zend_View_Helper_Abstract
 <span style="color: #009900;">&#123;</span>
 	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> url<span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span> <span style="color: #000088;">$urlOptions</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$name</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #000088;">$reset</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #000088;">$encode</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
 	<span style="color: #009900;">&#123;</span>
 	<span style="color: #000088;">$router</span> <span style="color: #339933;">=</span> Zend_Controller_Front<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getRouter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$router</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assemble</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$urlOptions</span><span style="color: #339933;">,</span> <span style="color: #000088;">$name</span><span style="color: #339933;">,</span> <span style="color: #000088;">$reset</span><span style="color: #339933;">,</span> <span style="color: #000088;">$encode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 	<span style="color: #009900;">&#125;</span>
 <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Crie um arquivo de helper com o nome que você quiser e o coloque no diretório de helpers da sua aplicação. O meu eu chamei de MyUrl.php. Crie neste arquivo a classe Zend_View_Helper_MyUrl. Dentro da classe, crie o método myUrl. É importante ressaltar que o nome do helper deve estar no nome do arquivo, como sufixo do nome da classe e como método principal, que é avaliado e chamado pelo objeto Zend_View ao ser requisitado no template.</p>
<p>O método myUrl terá os mesmos parâmetros do helper Url, com exceção que o primeiro parametro poderá tanto ser uma string quanto um array, então não é necessário tipá-la.</p>
<p>A classe então terá a seguinte estrutura.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">'Zend/View/Helper/Abstract.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Zend_View_Helper_MyUrl <span style="color: #000000; font-weight: bold;">extends</span> Zend_View_Helper_Abstract
<span style="color: #009900;">&#123;</span> 
     <span style="color: #009933; font-style: italic;">/**
       * Return the URL
       *
       * @param string|array $urlOptions
       * @param string       $name
       * @param bool         $reset
       * @param bool         $encode
       * @return string
       */</span>
       <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> myUrl<span style="color: #009900;">&#40;</span><span style="color: #000088;">$urlOptions</span><span style="color: #339933;">,</span> <span style="color: #000088;">$name</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #000088;">$reset</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #000088;">$encode</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
          <span style="color: #000088;">$front</span>  <span style="color: #339933;">=</span> Zend_Controller_Front<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #000088;">$router</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$front</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getRouter</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
          <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_string</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$urlOptions</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
             <span style="color: #000088;">$urlOptions</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span> <span style="color: #990000;">ltrim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$urlOptions</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Case the first character is a '?</span>
             <span style="color: #000088;">$request</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Controller_Request_Http<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Creates a cleaned instance of request http</span>
             <span style="color: #000088;">$request</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setBaseUrl</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$front</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getBaseUrl</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
             <span style="color: #000088;">$request</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setRequestUri</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$urlOptions</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
             <span style="color: #000088;">$route</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$router</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">route</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$request</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Return the request route with params modifieds</span>
             <span style="color: #000088;">$urlOptions</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$route</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getParams</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          <span style="color: #009900;">&#125;</span>
 	  <span style="color: #b1b100;">return</span>  <span style="color: #000088;">$router</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">assemble</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$urlOptions</span><span style="color: #339933;">,</span> <span style="color: #000088;">$name</span><span style="color: #339933;">,</span> <span style="color: #000088;">$reset</span><span style="color: #339933;">,</span> <span style="color: #000088;">$encode</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
 <span style="color: #009900;">&#125;</span></pre></div></div>

<p>Salvo o helper, é só utilizá-lo. Agora ele suporta todos os formatos:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">myUrl</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
   <span style="color: #0000ff;">'controller'</span><span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'users'</span><span style="color: #339933;">,</span>
   <span style="color: #0000ff;">'action'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'edit'</span><span style="color: #339933;">,</span>
   <span style="color: #0000ff;">'id'</span>  <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">25</span>
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>ou</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">myUrl</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'users/edit?id=25'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>ou</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">myUrl</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'users/edit/id/25'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Muito mais simples, elegante e bem produtivo!</p>
<p>É possível ainda utilizar os outros parâmetros do helper padrão, como o nome do roteador a ser utilizado para formatar a url, se o mesmo vai ou não utilizar a url base ou somente a partir da atual e se a url será codificada ou não &#8211; bastante útil para utilizar como valor de outros parametros. <img src='http://www.marcelomx.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelomx.com/2008/12/30/escrevendo-urls-no-zend-framework/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Zead Project</title>
		<link>http://www.marcelomx.com/2008/09/05/zead-project/</link>
		<comments>http://www.marcelomx.com/2008/09/05/zead-project/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 19:51:22 +0000</pubDate>
		<dc:creator>Marcelo Rodrigues</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[e-Learning]]></category>
		<category><![CDATA[ead]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Zead]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.marcelomx.com/?p=32</guid>
		<description><![CDATA[Estou iniciando um projeto pessoal, o Zead, uma aplicação para construção e gerenciamento de cursos para educação a distância em formato hipertextual (HTML), através de interface web.  O projeto está hospedado no Google Code sob a licença BSD (provisoriamente) e &#8230; <a href="http://www.marcelomx.com/2008/09/05/zead-project/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Estou iniciando um projeto pessoal, o <a title="Zead Project" href="http://code.google.com/p/zead/" target="_blank">Zead</a>, uma aplicação para construção e gerenciamento de cursos para educação a distância em formato hipertextual (HTML), através de interface web. </p>
<p>O projeto está hospedado no <a href="http://code.google.com/p/zead/">Google Code </a>sob a licença BSD (provisoriamente) e Creative Commons. </p>
<p>Ah, se o nome lhe parece estranho ou familiar, é porque é mesmo. A letra Z é de <a title="Zend Framework" href="http://framework.zend.com" target="_blank">Zend Framework</a>, já que o projeto é baseado todo nele, e EAD, de educação a distância. </p>
<p>Em breve mais detalhes do projeto. <img src='http://www.marcelomx.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelomx.com/2008/09/05/zead-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.6 RC1</title>
		<link>http://www.marcelomx.com/2008/07/24/zend-framework-16-rc1/</link>
		<comments>http://www.marcelomx.com/2008/07/24/zend-framework-16-rc1/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 14:49:28 +0000</pubDate>
		<dc:creator>Marcelo Rodrigues</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.marcelomx.com/?p=29</guid>
		<description><![CDATA[Já está disponível a versão 1.6rc1 do Zend Framework. Olhando rapidamente as mudanças desta nova versão, considerei algumas como excelentes e até demoradas para um framework maduro como o Zend. Nos meus últimos trabalhos, o adotei como o framework oficial &#8230; <a href="http://www.marcelomx.com/2008/07/24/zend-framework-16-rc1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Já está disponível a versão <a title="Zend Framework" href="http://devzone.zend.com/article/3712-Zend-Framework-1.6-Release-Candidate-1-now-available">1.6rc1</a> do <a title="Zend Framework" href="http://framework.zend.com/">Zend Framework</a>. Olhando rapidamente as mudanças desta nova versão, considerei algumas como excelentes e até demoradas para um framework maduro como o Zend. Nos meus últimos trabalhos, o adotei como o framework oficial para aplicações MVC, e foi uma grande experiência. Fiquei muito satisfeito tanto com o resultado final quanto com a produtividade.</p>
<p>Mesmo assim, tive algumas necessidades de implementação, principalmente aquelas relacionadas a banco de dados, que acabei desenvolvendo eu mesmo. Não foi uma tarefa tão difícil, já que o framework oferece os recursos de plugins/helpers, bastando estender as classes nativas do framework e implementar as funcionalidades que necessitava.</p>
<p>A paginação de resultados do banco tanto na camada de visualização quanto na própria abstração do banco e o envio de arquivos por upload foram os recurso que eu precisei implementar na unha mesmo. Para minha grata surpresa, esta nova versão do framework traz dois componentes que fazem exatamente essas tarefas, o Paginator e File Transfer.</p>
<p>Mas como bom beta tester que sou, já vou começar a explorar as novas mudanças até o lançamento da versão final, que deve sair até o fim do ano, presumo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcelomx.com/2008/07/24/zend-framework-16-rc1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

