<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comentários sobre: Domain Specific Language externa com PHP</title>
	<atom:link href="http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/feed/" rel="self" type="application/rss+xml" />
	<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/</link>
	<description>juntando as letrinhas desde 1986</description>
	<lastBuildDate>Thu, 05 Nov 2009 21:07:53 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Por: Renato</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-312</link>
		<dc:creator>Renato</dc:creator>
		<pubDate>Fri, 18 Sep 2009 14:56:41 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-312</guid>
		<description>heaeaiuhaeui que zica, aconteceu isso quando fui postar da primeira vez, dá muita raiva!

Mas meu, verdade, eu não tinha pensado nessa possibilidade de usar o __toString!

Agora ficou bem melhor mesmo.

valeu!</description>
		<content:encoded><![CDATA[<p>heaeaiuhaeui que zica, aconteceu isso quando fui postar da primeira vez, dá muita raiva!</p>
<p>Mas meu, verdade, eu não tinha pensado nessa possibilidade de usar o __toString!</p>
<p>Agora ficou bem melhor mesmo.</p>
<p>valeu!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: garotosopa</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-311</link>
		<dc:creator>garotosopa</dc:creator>
		<pubDate>Fri, 18 Sep 2009 13:22:30 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-311</guid>
		<description>(escrevendo comentário pela segunda vez já que o Wordpress perdeu meu texto anterior só porque eu dei esc)

Mas você está dando print da tag select direto no constructor e print da tag option direto nos métodos?

Porque do contrário você poderia apenas configurar os elementos e fazer o print depois. Algo como:

$select = new Select();
$select-&gt;option(”nome”,”valor”)
-&gt;option(”nome2″,”valor2″);
echo $select;

Dessa forma, o constructor apenas configura a tag, provavelmente o name do elemento; o método option() apenas adiciona os options em algo como $this-&gt;options[]; e no final, com o echo, o método __toString() é automaticamente chamado, e então retorna o html das tags - basta ler o $this-&gt;options.

Com essa estrutura você tem a possibilidade de montar o select pelo controller e mandá-lo já montado para o template, que apenas exibe a variável.

Outra possibilidade é deixar montado selects que se repetiriam, como em class SelectStatus extends Select, e no constructor você adiciona opções de status. No código final você apenas faria echo new SelectStatus();

Sem ser assim, não vejo como você saber quando fechar a tag.</description>
		<content:encoded><![CDATA[<p>(escrevendo comentário pela segunda vez já que o WordPress perdeu meu texto anterior só porque eu dei esc)</p>
<p>Mas você está dando print da tag select direto no constructor e print da tag option direto nos métodos?</p>
<p>Porque do contrário você poderia apenas configurar os elementos e fazer o print depois. Algo como:</p>
<p>$select = new Select();<br />
$select-&gt;option(”nome”,”valor”)<br />
-&gt;option(”nome2″,”valor2″);<br />
echo $select;</p>
<p>Dessa forma, o constructor apenas configura a tag, provavelmente o name do elemento; o método option() apenas adiciona os options em algo como $this-&gt;options[]; e no final, com o echo, o método __toString() é automaticamente chamado, e então retorna o html das tags &#8211; basta ler o $this-&gt;options.</p>
<p>Com essa estrutura você tem a possibilidade de montar o select pelo controller e mandá-lo já montado para o template, que apenas exibe a variável.</p>
<p>Outra possibilidade é deixar montado selects que se repetiriam, como em class SelectStatus extends Select, e no constructor você adiciona opções de status. No código final você apenas faria echo new SelectStatus();</p>
<p>Sem ser assim, não vejo como você saber quando fechar a tag.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Renato</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-310</link>
		<dc:creator>Renato</dc:creator>
		<pubDate>Fri, 18 Sep 2009 13:00:03 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-310</guid>
		<description>Então, é porque assim, o grande motivo deu ter procurado saber mais sobre o Fluent Interfaces, era o meu objetivo de criar um simples helper que montasse um select a partir de object chaining, usando a seguinte sintaxe fluente:

$select = new Select();
$select-&gt;option(&quot;nome&quot;,&quot;valor&quot;)
-&gt;option(&quot;nome2&quot;,&quot;valor2&quot;)
-&gt;option(&quot;nome3&quot;,&quot;valor3&quot;)
-&gt;option(&quot;nome4&quot;,&quot;valor4&quot;);

E ai vem o grande problema, porque o new tem o método construtor que cria a tag &quot;select&quot;, o option cria as tags &quot;option&quot;, e ai deveria ter algum método automático que fechasse o select.

Mas por essa teoria, se eu não vou usar um foreach, então é impossível fechar o select, porque o rewind nunca vai ser chamado.

Entendeu meu dilema?
Porque se não der desse jeito, a única forma de realizar essa tarefa é criar um método que feche o select, tipo end()..</description>
		<content:encoded><![CDATA[<p>Então, é porque assim, o grande motivo deu ter procurado saber mais sobre o Fluent Interfaces, era o meu objetivo de criar um simples helper que montasse um select a partir de object chaining, usando a seguinte sintaxe fluente:</p>
<p>$select = new Select();<br />
$select-&gt;option(&#8220;nome&#8221;,&#8221;valor&#8221;)<br />
-&gt;option(&#8220;nome2&#8243;,&#8221;valor2&#8243;)<br />
-&gt;option(&#8220;nome3&#8243;,&#8221;valor3&#8243;)<br />
-&gt;option(&#8220;nome4&#8243;,&#8221;valor4&#8243;);</p>
<p>E ai vem o grande problema, porque o new tem o método construtor que cria a tag &#8220;select&#8221;, o option cria as tags &#8220;option&#8221;, e ai deveria ter algum método automático que fechasse o select.</p>
<p>Mas por essa teoria, se eu não vou usar um foreach, então é impossível fechar o select, porque o rewind nunca vai ser chamado.</p>
<p>Entendeu meu dilema?<br />
Porque se não der desse jeito, a única forma de realizar essa tarefa é criar um método que feche o select, tipo end()..</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: garotosopa</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-309</link>
		<dc:creator>garotosopa</dc:creator>
		<pubDate>Fri, 18 Sep 2009 12:52:10 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-309</guid>
		<description>Porque o for() realmente não faz nenhuma consideração quanto à interface Iterator. Nesse caso você teria mesmo que chamar o rewind() antes.

A diferença é que o foreach(), internamente no PHP, respeita a interface e chama seus métodos. Basicamente o que você fez aí no for() manualmente.

Se for pra usar o iterator, acho que o grande lance é usar foreach() e deixar o PHP se virar com a interface mesmo.</description>
		<content:encoded><![CDATA[<p>Porque o for() realmente não faz nenhuma consideração quanto à interface Iterator. Nesse caso você teria mesmo que chamar o rewind() antes.</p>
<p>A diferença é que o foreach(), internamente no PHP, respeita a interface e chama seus métodos. Basicamente o que você fez aí no for() manualmente.</p>
<p>Se for pra usar o iterator, acho que o grande lance é usar foreach() e deixar o PHP se virar com a interface mesmo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Renato</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-308</link>
		<dc:creator>Renato</dc:creator>
		<pubDate>Thu, 17 Sep 2009 20:24:59 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-308</guid>
		<description>Nossa véio,
Passei mó cara lendo esse guia aqui:
http://www.php.net/~helly/php/ext/spl/

Só pra poder entender esse bolo todo!
Cara, muito insano!


Mas me diz uma coisa, se você souber: Porque o método rewind executa com o foreach e não executa com o for?

Tipo assim:

for($it = new ArrayIterator($array);$it-&gt;valid();$it-&gt;next())
{
echo $it-&gt;current() . &quot;&quot;;
}

Eu fiz os testes, e a única maneira que consegui fazer executar, foi colocando o método rewind dentro de uma classe que extendia a ArrayIterator :O

Que mágica é essa !</description>
		<content:encoded><![CDATA[<p>Nossa véio,<br />
Passei mó cara lendo esse guia aqui:<br />
<a href="http://www.php.net/~helly/php/ext/spl/" rel="nofollow">http://www.php.net/~helly/php/ext/spl/</a></p>
<p>Só pra poder entender esse bolo todo!<br />
Cara, muito insano!</p>
<p>Mas me diz uma coisa, se você souber: Porque o método rewind executa com o foreach e não executa com o for?</p>
<p>Tipo assim:</p>
<p>for($it = new ArrayIterator($array);$it-&gt;valid();$it-&gt;next())<br />
{<br />
echo $it-&gt;current() . &#8220;&#8221;;<br />
}</p>
<p>Eu fiz os testes, e a única maneira que consegui fazer executar, foi colocando o método rewind dentro de uma classe que extendia a ArrayIterator :O</p>
<p>Que mágica é essa !</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: garotosopa</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-307</link>
		<dc:creator>garotosopa</dc:creator>
		<pubDate>Wed, 16 Sep 2009 19:52:39 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-307</guid>
		<description>Na verdade, neste ponto ele não sabe ainda quem foi o último método, e nem executa a query. Você poderia ter parado em &lt;em&gt;noCurso()&lt;/em&gt;, ou nem ter aplicado filtro nenhum.

O grande lance é que esse objeto &lt;em&gt;$alunos&lt;/em&gt; implementa a interface &lt;strong&gt;Iterator&lt;/strong&gt; do PHP, possibilitando que o objeto possa ser usado assim: &lt;em&gt;foreach ( &lt;strong&gt;$alunos&lt;/strong&gt; as $aluno ) { ... }&lt;/em&gt;.

Quando o foreach inicia, ele automaticamente chama &lt;em&gt;$alunos-&gt;reset()&lt;/em&gt;, e é nesse momento que a query é executada, usando todos os critérios que foram configurados anteriormente. Depois o PHP chama &lt;em&gt;$alunos-&gt;valid()&lt;/em&gt;, pra saber se deve continuar a iteração, &lt;em&gt;$alunos-&gt;current()&lt;/em&gt; para pegar o valor do &lt;em&gt;$aluno&lt;/em&gt; desta iteração, &lt;em&gt;$alunos-&gt;next()&lt;/em&gt; para avançar a iteração, e depois recomeça no &lt;em&gt;valid()&lt;/em&gt; até não ser mais válido.

O post &lt;a href=&quot;http://garotosopa.wordpress.com/2007/04/18/voltas-e-mais-voltas-com-spl/&quot; rel=&quot;nofollow&quot;&gt;Voltas e mais voltas com SPL&lt;/a&gt; explica detalhadamente o uso dessas interfaces de iterator (tão detalhado que é bastante chato hehe). Mas é bastante útil de vez em quando :)

Abs,
Diogo</description>
		<content:encoded><![CDATA[<p>Na verdade, neste ponto ele não sabe ainda quem foi o último método, e nem executa a query. Você poderia ter parado em <em>noCurso()</em>, ou nem ter aplicado filtro nenhum.</p>
<p>O grande lance é que esse objeto <em>$alunos</em> implementa a interface <strong>Iterator</strong> do PHP, possibilitando que o objeto possa ser usado assim: <em>foreach ( <strong>$alunos</strong> as $aluno ) { &#8230; }</em>.</p>
<p>Quando o foreach inicia, ele automaticamente chama <em>$alunos-&gt;reset()</em>, e é nesse momento que a query é executada, usando todos os critérios que foram configurados anteriormente. Depois o PHP chama <em>$alunos-&gt;valid()</em>, pra saber se deve continuar a iteração, <em>$alunos-&gt;current()</em> para pegar o valor do <em>$aluno</em> desta iteração, <em>$alunos-&gt;next()</em> para avançar a iteração, e depois recomeça no <em>valid()</em> até não ser mais válido.</p>
<p>O post <a href="http://garotosopa.wordpress.com/2007/04/18/voltas-e-mais-voltas-com-spl/" rel="nofollow">Voltas e mais voltas com SPL</a> explica detalhadamente o uso dessas interfaces de iterator (tão detalhado que é bastante chato hehe). Mas é bastante útil de vez em quando :)</p>
<p>Abs,<br />
Diogo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Renato</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-306</link>
		<dc:creator>Renato</dc:creator>
		<pubDate>Wed, 16 Sep 2009 19:39:16 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-306</guid>
		<description>Só tenho uma dúvida..

Qual é a lógica pra saber que o script tá lendo o ultimo método?

Ex:

$alunos-&gt;matriculados()
-&gt;noCurso(&quot;tal&quot;)
-&gt;comStatus(&quot;formado&quot;);

Como o script faz pra saber que o método &quot;comStatus&quot; foi o ultimo método daquela sequência pra fechar a query?

Porque tem que ter algo que feche a query , se não fica pela metade..
Eu só não entendi como o código fez isso..</description>
		<content:encoded><![CDATA[<p>Só tenho uma dúvida..</p>
<p>Qual é a lógica pra saber que o script tá lendo o ultimo método?</p>
<p>Ex:</p>
<p>$alunos-&gt;matriculados()<br />
-&gt;noCurso(&#8220;tal&#8221;)<br />
-&gt;comStatus(&#8220;formado&#8221;);</p>
<p>Como o script faz pra saber que o método &#8220;comStatus&#8221; foi o ultimo método daquela sequência pra fechar a query?</p>
<p>Porque tem que ter algo que feche a query , se não fica pela metade..<br />
Eu só não entendi como o código fez isso..</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Renato</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-305</link>
		<dc:creator>Renato</dc:creator>
		<pubDate>Wed, 16 Sep 2009 19:34:47 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-305</guid>
		<description>Rapazzz!

Muito louco esse negócio de DSL, cara que foda, achei genial!</description>
		<content:encoded><![CDATA[<p>Rapazzz!</p>
<p>Muito louco esse negócio de DSL, cara que foda, achei genial!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: garotosopa</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-106</link>
		<dc:creator>garotosopa</dc:creator>
		<pubDate>Wed, 25 Mar 2009 17:32:52 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-106</guid>
		<description>Olá, Bruno.

Você pode dar uma olhada no código que está no Google Code.

Se estiver familiarizado com SVN, basta fazer checkout de
http://dslcatalog.googlecode.com/svn/trunk/

Caso prefira, tem um pacote zip com a revisão 48. É só baixar:
http://dslcatalog.googlecode.com/files/dslcatalog-r48.zip

Depois de baixar, coloque em algum diretório acessível pelo servidor
web e teste o acesso em dslcatalog/php/demo/public/index.php.

Você vai precisar do PHP 5 com PDO e o driver de SQLite para o PDO
para este teste.

Se estiver interessado na linha de raciocínio, talvez o post
http://garotosopa.wordpress.com/2008/10/29/fluent-interface-php/ seja
interessante. Algumas coisas mudaram na versão atual, mas a idéia é
essa.


Abs,
Diogo</description>
		<content:encoded><![CDATA[<p>Olá, Bruno.</p>
<p>Você pode dar uma olhada no código que está no Google Code.</p>
<p>Se estiver familiarizado com SVN, basta fazer checkout de<br />
<a href="http://dslcatalog.googlecode.com/svn/trunk/" rel="nofollow">http://dslcatalog.googlecode.com/svn/trunk/</a></p>
<p>Caso prefira, tem um pacote zip com a revisão 48. É só baixar:<br />
<a href="http://dslcatalog.googlecode.com/files/dslcatalog-r48.zip" rel="nofollow">http://dslcatalog.googlecode.com/files/dslcatalog-r48.zip</a></p>
<p>Depois de baixar, coloque em algum diretório acessível pelo servidor<br />
web e teste o acesso em dslcatalog/php/demo/public/index.php.</p>
<p>Você vai precisar do PHP 5 com PDO e o driver de SQLite para o PDO<br />
para este teste.</p>
<p>Se estiver interessado na linha de raciocínio, talvez o post<br />
<a href="http://garotosopa.wordpress.com/2008/10/29/fluent-interface-php/" rel="nofollow">http://garotosopa.wordpress.com/2008/10/29/fluent-interface-php/</a> seja<br />
interessante. Algumas coisas mudaram na versão atual, mas a idéia é<br />
essa.</p>
<p>Abs,<br />
Diogo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Bruno Coelho</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-104</link>
		<dc:creator>Bruno Coelho</dc:creator>
		<pubDate>Wed, 25 Mar 2009 13:19:25 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-104</guid>
		<description>Diogo,
Bom Dia,

Estou querendo pegar sua ideia (excelente!!) e fazer meu Trabalho de Conclusão de Curso, gostaria de saber se vc pode me ajudar, puderia me mandar um passo a passo de como implementou a dsl (tanto na linguagem como o Banco)?
Meu email e msn é brunoanalise@hotmail.com.
Desde já agradeço Diogo.
Valeu!

Abs.</description>
		<content:encoded><![CDATA[<p>Diogo,<br />
Bom Dia,</p>
<p>Estou querendo pegar sua ideia (excelente!!) e fazer meu Trabalho de Conclusão de Curso, gostaria de saber se vc pode me ajudar, puderia me mandar um passo a passo de como implementou a dsl (tanto na linguagem como o Banco)?<br />
Meu email e msn é <a href="mailto:brunoanalise@hotmail.com">brunoanalise@hotmail.com</a>.<br />
Desde já agradeço Diogo.<br />
Valeu!</p>
<p>Abs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: garotosopa</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-102</link>
		<dc:creator>garotosopa</dc:creator>
		<pubDate>Wed, 11 Mar 2009 20:53:57 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-102</guid>
		<description>Olá, Bruno!

Realmente a demonstração não está mais online, mas você pode baixar o código pelo repositório do projeto.

Se você estiver familiarizado com SVN, basta fazer checkout de http://dslcatalog.googlecode.com/svn/trunk/

Caso prefira, acabei de criar um pacote zip com a revisão 48. É só baixar: http://dslcatalog.googlecode.com/files/dslcatalog-r48.zip

Depois de baixar, coloque em algum diretório acessível pelo servidor web e teste o acesso em dslcatalog/php/demo/public/index.php.

Você vai precisar do PHP 5 com PDO e o driver de SQLite para o PDO para este teste. Se ainda não estiverem instalados, no Linux, basta fazer &quot;sudo pecl install pdo&quot; e &quot;sudo pecl install pdo_sqlite&quot;.

Em relação ao Java, eu comecei a fazer algo com Hibernate recentemente, mas não tenho mexido e nem tenho pretensão de publicar algo em breve. Acho que dá pra fazer algo bem legal.


Abs,
Diogo</description>
		<content:encoded><![CDATA[<p>Olá, Bruno!</p>
<p>Realmente a demonstração não está mais online, mas você pode baixar o código pelo repositório do projeto.</p>
<p>Se você estiver familiarizado com SVN, basta fazer checkout de <a href="http://dslcatalog.googlecode.com/svn/trunk/" rel="nofollow">http://dslcatalog.googlecode.com/svn/trunk/</a></p>
<p>Caso prefira, acabei de criar um pacote zip com a revisão 48. É só baixar: <a href="http://dslcatalog.googlecode.com/files/dslcatalog-r48.zip" rel="nofollow">http://dslcatalog.googlecode.com/files/dslcatalog-r48.zip</a></p>
<p>Depois de baixar, coloque em algum diretório acessível pelo servidor web e teste o acesso em dslcatalog/php/demo/public/index.php.</p>
<p>Você vai precisar do PHP 5 com PDO e o driver de SQLite para o PDO para este teste. Se ainda não estiverem instalados, no Linux, basta fazer &#8220;sudo pecl install pdo&#8221; e &#8220;sudo pecl install pdo_sqlite&#8221;.</p>
<p>Em relação ao Java, eu comecei a fazer algo com Hibernate recentemente, mas não tenho mexido e nem tenho pretensão de publicar algo em breve. Acho que dá pra fazer algo bem legal.</p>
<p>Abs,<br />
Diogo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Bruno Coelho</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-101</link>
		<dc:creator>Bruno Coelho</dc:creator>
		<pubDate>Wed, 11 Mar 2009 17:49:32 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-101</guid>
		<description>Boa Tarde Garotosopa,

Achei muito interessante sua dsl, eu estou fazendo meu trabalho de conclusão de curso sobre dsl, mas queria fazer a mesma coisa que vc fez mas em java, gostaria de saber se tem alguma coisa ja implementada em java.
Outra coisa é se vc tem tambem p passo a passo (tutorial ) de como colocar rodar essa dsl, pois o link http://garotosopa.wordpress.com/dslcatalog-r39/demo/public/index.php não está mais disponivel.

Muito obrigada.
agradeço desde já!

Abs.</description>
		<content:encoded><![CDATA[<p>Boa Tarde Garotosopa,</p>
<p>Achei muito interessante sua dsl, eu estou fazendo meu trabalho de conclusão de curso sobre dsl, mas queria fazer a mesma coisa que vc fez mas em java, gostaria de saber se tem alguma coisa ja implementada em java.<br />
Outra coisa é se vc tem tambem p passo a passo (tutorial ) de como colocar rodar essa dsl, pois o link <a href="http://garotosopa.wordpress.com/dslcatalog-r39/demo/public/index.php" rel="nofollow">http://garotosopa.wordpress.com/dslcatalog-r39/demo/public/index.php</a> não está mais disponivel.</p>
<p>Muito obrigada.<br />
agradeço desde já!</p>
<p>Abs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: murilo</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-73</link>
		<dc:creator>murilo</dc:creator>
		<pubDate>Tue, 23 Dec 2008 03:12:28 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-73</guid>
		<description>Legal esse esquema hein??!

^^</description>
		<content:encoded><![CDATA[<p>Legal esse esquema hein??!</p>
<p>^^</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: garotosopa</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-63</link>
		<dc:creator>garotosopa</dc:creator>
		<pubDate>Mon, 24 Nov 2008 21:25:07 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-63</guid>
		<description>Valeu =)

Como eu não tenho prática em escrever testes preferi deixar pra depois, senão a idéia podia acabar morrendo e no final das contas eu ia ficar sem teste e sem idéia...

Mas é prioridade na lista de coisas pra estudar :P</description>
		<content:encoded><![CDATA[<p>Valeu =)</p>
<p>Como eu não tenho prática em escrever testes preferi deixar pra depois, senão a idéia podia acabar morrendo e no final das contas eu ia ficar sem teste e sem idéia&#8230;</p>
<p>Mas é prioridade na lista de coisas pra estudar :P</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Guilherme Chapiewski</title>
		<link>http://garotosopa.wordpress.com/2008/11/19/domain-specific-language-externa-com-php/#comment-62</link>
		<dc:creator>Guilherme Chapiewski</dc:creator>
		<pubDate>Sun, 23 Nov 2008 00:54:56 +0000</pubDate>
		<guid isPermaLink="false">http://garotosopa.wordpress.com/?p=265#comment-62</guid>
		<description>Legal o seu estudo, continue :)

Acho que você deveria se esforçar para fazer os testes unitários antes do código, pois você veria que o resultado seria um pouco diferente em alguns pontos.

Dei uma olhada no código e está muito bem organizado, parabéns ;)

[ ]s, gc</description>
		<content:encoded><![CDATA[<p>Legal o seu estudo, continue :)</p>
<p>Acho que você deveria se esforçar para fazer os testes unitários antes do código, pois você veria que o resultado seria um pouco diferente em alguns pontos.</p>
<p>Dei uma olhada no código e está muito bem organizado, parabéns ;)</p>
<p>[ ]s, gc</p>
]]></content:encoded>
	</item>
</channel>
</rss>
