<?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 do Xorna &#187; Desenvolvimento</title>
	<atom:link href="http://www.blogdoxorna.com.br/categorias/desenvolvimento/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blogdoxorna.com.br</link>
	<description>Informação sem discrição</description>
	<lastBuildDate>Wed, 05 May 2010 03:44:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Comparações Case Sensitive em consultas Mysql</title>
		<link>http://www.blogdoxorna.com.br/comparacoes-case-sensitive-em-consultas-mysql/</link>
		<comments>http://www.blogdoxorna.com.br/comparacoes-case-sensitive-em-consultas-mysql/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 02:08:55 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[case sensitive]]></category>
		<category><![CDATA[consulta]]></category>
		<category><![CDATA[query]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com.br/?p=167</guid>
		<description><![CDATA[Buenas pessoal, tempão sem postar nada, a vida anda corrida demais, esse artigo está para ser escrito faz um tempão, e como ele é curto eu resolvi postar de uma vez ele. Nele vou lhes apresentar uma solução para realizarmos consultas case sensitive no Mysql.
Para começar, caso você utilize um campo de texto no Mysql [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas pessoal, tempão sem postar nada, a vida anda corrida demais, esse artigo está para ser escrito faz um tempão, e como ele é curto eu resolvi postar de uma vez ele. Nele vou lhes apresentar uma solução para realizarmos consultas case sensitive no Mysql.</p>
<p>Para começar, caso você utilize um campo de texto no Mysql como VARCHAR, TEXT, etc, na hora de fazer uma consulta ele não considerará se seu texto comparado está exatamente igual ao texto da comparação quando falamos em Maiúsculas/Minúsculas. Então para resolver isso, devemos fazer um casting na comparação utilizando o operador <a title="Binary Operator - Mysql 5.0 Reference" href="http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#operator_binary" onclick="javascript:TrackClick('http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.0%2Fen%2Fcast-functions.html%23operator_binary','Binary+Operator+-+Mysql+5.0+Reference')" target="_blank">BINARY</a> do Mysql. De longe essa é a alternativa mais simples que eu encontrei, existem outras, que envolvem mudar o COLLATE durante a consulta, mas não me pareceu elegante nem muito promissor.</p>
<p>A função do operador BINARY é muito simples, ele transforma todo o texto passado pra ele em código binário, logo &#8220;x&#8221; em binário é totalmente diferente de &#8220;X&#8221;. Abaixo alguns exemplos:</p>
<pre>    SELECT "x" = "X";
    retorna 1
    SELECT binary "x" = "X"
    retorna 0</pre>
<p>É claro que além dessa comparação simples ele é aceito na comparação LIKE:</p>
<pre>    SELECT binary "xorna" LIKE "%X%"
    retorna 0
    SELECT binary "Xorna" LIKE "%X%"
    retorna 1</pre>
<p>É simples, funciona, eu diria que isso é um <strong>workaround elegante</strong> (se é que existe isso).</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;title=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;title=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;title=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;t=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;title=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;title=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;title=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;title=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Buenas%20pessoal%2C%20temp%C3%A3o%20sem%20postar%20nada%2C%20a%20vida%20anda%20corrida%20demais%2C%20esse%20artigo%20est%C3%A1%20para%20ser%20escrito%20faz%20um%20temp%C3%A3o%2C%20e%20como%20ele%20%C3%A9%20curto%20eu%20resolvi%20postar%20de%20uma%20vez%20ele.%20Nele%20vou%20lhes%20apresentar%20uma%20solu%C3%A7%C3%A3o%20para%20realizarmos%20consultas%20case%20sensi" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;title=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;story_title=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;name=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;submitHeadline=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql&amp;submitSummary=Buenas%20pessoal%2C%20temp%C3%A3o%20sem%20postar%20nada%2C%20a%20vida%20anda%20corrida%20demais%2C%20esse%20artigo%20est%C3%A1%20para%20ser%20escrito%20faz%20um%20temp%C3%A3o%2C%20e%20como%20ele%20%C3%A9%20curto%20eu%20resolvi%20postar%20de%20uma%20vez%20ele.%20Nele%20vou%20lhes%20apresentar%20uma%20solu%C3%A7%C3%A3o%20para%20realizarmos%20consultas%20case%20sensi&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcomparacoes-case-sensitive-em-consultas-mysql%2F&amp;=Compara%C3%A7%C3%B5es%20Case%20Sensitive%20em%20consultas%20Mysql" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/comparacoes-case-sensitive-em-consultas-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mini manual VIM (Vi IMproved)</title>
		<link>http://www.blogdoxorna.com.br/mini-manual-vim-vi-improved/</link>
		<comments>http://www.blogdoxorna.com.br/mini-manual-vim-vi-improved/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 23:02:49 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[programação]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com.br/?p=152</guid>
		<description><![CDATA[Buena moçada, vou deixar esfriando o artigo sobre testes unitários, e vou refatorar um artigo de um ano atrás. O artigo é sobre o VIM (Vi IMproved), este editor (fantástico diga-se de passagem) que tenho usado pouco nos últimos tempos, agora é a minha nova escolha para desenvolvimento, dado que cansei de usar IDEs pesadas [...]]]></description>
			<content:encoded><![CDATA[<p>Buena moçada, vou deixar esfriando o artigo sobre testes unitários, e vou refatorar um artigo de um ano atrás. O artigo é sobre o VIM (Vi IMproved), este editor (fantástico diga-se de passagem) que tenho usado pouco nos últimos tempos, agora é a minha nova escolha para desenvolvimento, dado que cansei de usar IDEs pesadas e que pouca ajuda têm me dado. Usei meu antigo artigo como base de estudo dos principais comandos, e agora monto um pequeno manual para eu mesmo usar e quem quiser também.</p>
<p>O VIM é um editor de texto que foi baseado no &#8220;vi&#8221;, e é disponibilizado para uma grande quantidade de plataformas (Linux, *BSD, Windows, BeOS, AmigaOS, MacOS, etc). No linux e mac os x normalmente ele vem instalado na distribuição, caso não esteja instalado e você deseja instalar, basta baixar a última versão dele em http://www.vim.org.</p>
<p>O VIM utiliza buffers, ou seja, representações do texto em memória, quando um arquivo é aberto, ele é carregado em memória, e todas as alterações feitas nele afetam apenas o buffer (arquivo em memória) e não no arquivo original, até que o mesmo seja salvo. Caso você abra o VIM  sem especificar um arquivo, ele cria um buffer vazio em memória sem nome definido.</p>
<p>O VIM é um software simples, mas metódico, exigindo perícia e um pequeno tempo para o usuário gostar dele, quando o usuário gosta, é paixão eterna. Se o mesmo não consegue se adaptar, ele dificilmente abre novamento o editor.</p>
<p><strong>O VIM possui vários modos de funcionamento, abaixo vou listá-los:</strong></p>
<ul>
<li>INSERT: o modo &#8220;insert&#8221; é utilizado para inserir e modificar o conteúdo do arquivo, neste modo, tudo que é feito é gravado somente em memória;</li>
<li>VISUAL: o modo &#8220;visual&#8221; é utilizado para selecionar textos e fazer operações sobre esta seleção, como copiar, recortar, colar, excluir, navegar entre o início e o fim de uma linha;</li>
<li>Linha de comando: neste modo é possível executar diversos comandos do VIM ou até mesmo da shell, com os comandos do VIM podemos fazer muitas coisas, como gravar buffers, abrir arquivos, navegar entre arquivos abertos, procurar por trechos de texto e fazer substituição de textos com expressões regulares, e também executar tarefas em repetição de forma automatizada; </li>
<li>Nenhum modo: é como o VIM abre, a partir dele é possível navegar pelo arquivo aberto com os cursores Home/End, PageUp/PageDown ou até mesmo utilizar comandos do VIM.</li>
</ul>
<p><strong>Comandos do VIM</strong></p>
<p>Vamos começar pelo final, como fechar um arquivo</p>
<pre>
	# Se você estiver em modo INSERT, tecle ESC para sair deste modo;
	# Digite ":" para entrar em modo Linha de Comando;
	# Digite "q" (quit) e tecle ENTER para executar o comando;
	# nota: se o arquivo estiver protegido contra gravação e você fez alguma modificação,
       após digitar "q", digite "!" ficando "q!" e depois tecle ENTER para executar.
</pre>
<p>Bom, assim melhor né, agora você já sabe fechar o VIM <img src='http://www.blogdoxorna.com.br/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> . Agora por segundo porém não menos importante, vamos aprender a inserir os textos no nosso arquivo:</p>
<pre>
	# Para entrar em modo INSERT, digite "i" ou "a" (também funciona, herança do "vi");
	# Digite a vontade;
	# Tecle ESC para sair do modo INSERT;
</pre>
<p>Edição de texto (Recortar/Copiar/Colar)</p>
<pre>
	# Se você estiver em modo INSERT, tecle ESC para sair deste modo;
	# Digite "v" para entrar em modo VISUAL;
	# Faça a seleção do texto utilizando os cursores;
	# Digite "d" (delete) para recortar o texto (movê-lo para a memória);
	# Ou digite "y" (yank) para copiar o texto (copiá-lo para a memória);
	# Escolha o lugar onde quer copiá-lo;
	# Digite "p" para inserir o texto a partir da posição do cursor;
	# Digite "P" para inserir o texto antes da posição do cursor.
</pre>
<p>A partir daqui estamos no modo Linha de Comando, ou seja, tecle ESC se você estiver em modo INPUT ou VISUAL:</p>
<p>Trabalhando com os arquivos/buffers</p>
<pre>
	# :e "arquivo" - Abre um arquivo, criando um novo buffer e abrindo ele em uma nova "tela";
	# :buffers - Lista todos os arquivos abertos;
	# :b "arquivo" - Salta para outro arquivo aberto, use TAB para autocompletar os nomes dos arquivos abertos;
	# :bn - Salta para o próximo arquivo aberto;
	# :bp - Salta para o arquivo anterior aberto;
	# :w - Grava o buffer atual com o nome do arquivo aberto;
	# :wq - Grava o buffer atual com seu nome, e fecha o VIM;
	# :wqa - Grava todos os buffers em seus determinados arquivos e fecha o VIM.
</pre>
<p>Navegando dentro do arquivo aberto (estes comandos se equivalem aos do cursor de seu teclado, a diferença é que eles não funcionam em qualquer modo, somente em Linha de Comando):</p>
<pre>
	# "h" - Esquerda
	# "l" - Direita
	# "k" - Cima
	# "j" - Baixo
</pre>
<p>Navegar entre as linhas:</p>
<pre>
	# "gg" - Move o cursor para a primeira linha do arquivo;
	# :0 - Move o cursor para a primeira linha do arquivo;
	# "G" - Move o cursor para a última linha do arquivo;
	# :$ - Move o cursor para a última linha do arquivo;
	# "*" - Salta para a próxima ocorrência da palavra sob o cursor;
	# '' - Volta para a linha anterior ao ultimo salto;
	# "ma" - Cria um marcador de linha chamado "a";
	# "`a" - Move o cursor para a marca "a";
	# "'a" - Move o cursor para a linha que contém a marca "a";
	# " - Move o cursor para o caracter anterior ao último salto.
</pre>
<p>Navegação na linha:</p>
<pre>
	# 0 - Move o cursor para o inicio da linha;
	# $ - Move o cursor para o final da linha.
</pre>
<p>Apagando texto:</p>
<pre>
	# "dd" - Apaga a linha atual;
	# "d" "CIMA" - Apaga a linha atual e anterior;
	# "d" "BAIXO" - Apaga a linha atual e seguindo;
	# "d" "ESQUERDA" - Apaga o caracter a esquerda;
	# "d" "DIREITA" - Apaga o caracter a direita;
	# "x" - Apaga o caracter a direita;
	# "d0" - Apaga até o principio da linha;
	# "d$" - Apaga até o final da linha;
	# "dw" - Apaga a palavra seguinte;
	# "db" - Apaga a palavra anterior;
	# "d'a" - Apaga até a linha com o marcador "a";
	# "d`a" - Apaga até o caracter com o marcador "a".
</pre>
<p>Multiplicadores:</p>
<p>Muitos comandos podem ser precedidos de um multiplicador, ou seja, podem ser executados &#8220;n&#8221; vezes, esse número de repetições deve ser inserido antes do comando desejado e só é apresentado na tela (canto inferior direito) se ativarmos a opção &#8220;showcmd&#8221; (:set showcmd). Abaixo vou citar alguns exemplos:</p>
<pre>
	# 20 "BAIXO" - Move o cursor 20 linhas para baixo;
	# 4 dd - Apaga as 4 linhas seguintes, incluindo a atual;
	# 4 d "DIREITA" - Apaga os 6 próximos caracteres a direita.
</pre>
<p>Busca de expressões dentro do texto:</p>
<pre>
	# "/expressão" - Procurar para frente;
	# "?expressão" - Procurar para trás;
	# "ENTER" - Ir para a primeira ocorrência;
	# "n" - Ir para próxima ocorrência;
	# "N" - Ir para o ocorrência anterior.
</pre>
<p>Expressões Regulares:</p>
<pre>
	# "." - Representa qualquer caracter simples exceto mudança de linha;
	# " " - Representa o caracte que se segue;
	# "*" - Representa 0 ou mais ocorrências do caracter precedente;
	# "[]" - Representa um dos caracteres incluidos;
	# "^" - Indica que o caracter seguinte deve estar no inicio da linha;
	# "$" - Representa caracteres no final da linha;
	# "[^]" - Representa qualquer coisa exceto o que vem depois do "^";
	# "[-]" - Representa um intervalo de caracteres.
</pre>
<p>Alguns exemplos de expressões regulares:</p>
<pre>
	# "c.pe" - Representa cope, cape, caper, ...;
	# "c.pe " - Representa c.pe, c.per, ...;
	# "sto*p" - Representa stp, stop, stoop, ...;
	# "car.*n" - Representa carton, cartoon, carmen, ...;
	# "xyz.*" - Representa xyz até o final da linha;
	# "^The" - Representa qualquer coisa que comece com The;
	# "atime$" - Representa qualquer coisa terminado com atime;
	# "^Only$" - Representa qualquer linha que contenha somente Only;
	# "b[aou]rn" - Representa barn, born e burn;
        # "Ver[D-F]" - Representa VerD, VerE e VerF;
        # "Ver[^1-9]" - Representa Ver seguido de um não digito;
      	# "the[ir][re]" - Representa their, theie, therr e there;
	# "[A-Za-z][A-Za-z]*" - Representa qualquer palavra;
</pre>
<p>Substituição de Textos:</p>
<pre>
	# :%s/substituir isto/por isto/g
</pre>
<p>Quando utilizarmos  o caracter &#8220;%&#8221; antes de &#8220;s&#8221; estamos dizendo que a substituição deve ser feita em todas as ocorrências da palavra buscada, podemos especificar um intervalo também:</p>
<pre>
	# :linha1,linha3s/substituir isto/por isto/g
</pre>
<p>Do modo que fizemos agora, ele vai substituir somente as ocorrências entre a linha 1 e linha 3. Se utilizarmos &#8220;/gc&#8221; ao invés de &#8220;/g&#8221;, é necessário a confirmação antes da substituição de cada ocorrência. Enfim, as expressões utilizadas são delimitadas pelo caractere &#8220;/&#8221;, ou seja, o que vier entre a primeira e a segunda &#8220;/&#8221; representa a expressão a procurar e ser substituida, o que vier entre a segunda e terceira representa a expressão que vai substituir a primeira. Se a segunda expressão ficar vazia, as ocorrências da primeira serão eliminadas. Exemplos:</p>
<pre>
	# :1,$s/the/The/g - Substitui the por The desde a primeira linha até a última;
	# :%s/the/The/g - Substitui the por The desde a primeira linha até a última;
	# :%s/the/The/gc - Substitui the por The em todo o documento pedindo confirmação;
	# :.,5s/^.*//g - Apaga todas as linhas entre a atual e a 5ª linha;
	# :'a,.s/^..//g - Apaga os dois primeiros caracteres das linhas entre a marca "a" e a atual;
	# :%s/$/ < -/g - Acrescenta "<-" ao final de cada linha do documento;
</pre>
<p>O caracter "&#038;" pode ser usado para representar a expressão buscada quando utilizado na segunda expressão, de modo a incluir a mesma na substituição, exemplo:
</pre>
<pre>
	# :%s/help/&#038;ing/g - Substitui help por helping
	# :%s/ */&#038;&#038;/g - Duplica o numero de espaços entre as palavras
	# :%s/and/&#038;/g - Para inserir o próprio caracter "&#038;" usamos "&#038;"
</pre>
<p>Registros</p>
<p>Podem ser utilizados para automatizar tarefas repetitivas, como inserir ou editar tags html, para utilizá-los você deve sair do modo INSERT, pressione &#8220;q&#8221;, depois o caracter que será o nome do registro no qual você queira guardar a ação, por exemplo &#8220;a&#8221;. Depois disso vai aparecer &#8220;recording&#8221; na parte inferior do terminal, de agora em diante, tudo que que for feito será gravado no registro &#8220;a&#8221;, para acabar de gravar é só sair do modo INSERT e pressionar &#8220;q&#8221; novamente, a palavra &#8220;recording&#8221; deve desaparecer. Para executar o registro basta pressionar &#8220;@&#8221; e após isso o caracter correspondente ao registro, no nosso exemplo &#8220;a&#8221;.</p>
<pre>
	# "q" - Inicia e finaliza a gravação de um registro;
	# "@" - Executa um determinado registro.
</pre>
<p>Além de gravar sequências de comando, quando você copia ou recorta textos no VIM, está jogando este conteúdo para o registro, desta forma você pode especificar qual registro quer usar em cada caso. Para isso basta você indicar qual registro usar. Referindo-se a ele utilizando o caracter &#8220;, desta forma, para se referir ao registro &#8220;a&#8221;, utilize &#8216;&#8221;a&#8217;. Exemplos:</p>
<pre>
	# "ay - Copia o texto selecionado para o registro "a";
	# "ad - Remove o texto selecionado e o coloca no registro "a";
	# "ap - Cola o conteúdo do registro "a" para depois do cursor.
</pre>
<p>Janelas:</p>
<pre>
	# :sp - Cria uma nova janela com o mesmo arquivo aberto;
	# :sp arquivo - Abre uma nova janela com o arquivo especificado;
	# :q - Fecha a janela atual, não fecha se for a unica janela com o arquivo aberto e o mesmo não estiver gravado;
	# :q! - Fecha a janela atual de qualquer forma (Forçado);
	# :qa - Fecha todas as janelas e sai, pedindo confirmação;
	# CTRL "ww" - Pula para a janela seguinte.
</pre>
<p>Bom, por enquanto é isso, em breve estarei postando um artigo sobre a configuração do VIM, coisa que estou explorando agora e não tenho muito a adicionar, qualquer coisa visitem a documentação do VIM online em  http://vimdoc.sourceforge.net/.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;title=Mini%20manual%20VIM%20%28Vi%20IMproved%29" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;title=Mini%20manual%20VIM%20%28Vi%20IMproved%29" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;title=Mini%20manual%20VIM%20%28Vi%20IMproved%29" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;t=Mini%20manual%20VIM%20%28Vi%20IMproved%29" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;title=Mini%20manual%20VIM%20%28Vi%20IMproved%29" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;title=Mini%20manual%20VIM%20%28Vi%20IMproved%29" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Mini%20manual%20VIM%20%28Vi%20IMproved%29&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;title=Mini%20manual%20VIM%20%28Vi%20IMproved%29" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;title=Mini%20manual%20VIM%20%28Vi%20IMproved%29&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Buena%20mo%C3%A7ada%2C%20vou%20deixar%20esfriando%20o%20artigo%20sobre%20testes%20unit%C3%A1rios%2C%20e%20vou%20refatorar%20um%20artigo%20de%20um%20ano%20atr%C3%A1s.%20O%20artigo%20%C3%A9%20sobre%20o%20VIM%20%28Vi%20IMproved%29%2C%20este%20editor%20%28fant%C3%A1stico%20diga-se%20de%20passagem%29%20que%20tenho%20usado%20pouco%20nos%20%C3%BAltimos%20tempos%2C%20agora%20%C3%A9" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;title=Mini%20manual%20VIM%20%28Vi%20IMproved%29" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Mini%20manual%20VIM%20%28Vi%20IMproved%29&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;story_title=Mini%20manual%20VIM%20%28Vi%20IMproved%29" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;name=Mini%20manual%20VIM%20%28Vi%20IMproved%29" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;submitHeadline=Mini%20manual%20VIM%20%28Vi%20IMproved%29&amp;submitSummary=Buena%20mo%C3%A7ada%2C%20vou%20deixar%20esfriando%20o%20artigo%20sobre%20testes%20unit%C3%A1rios%2C%20e%20vou%20refatorar%20um%20artigo%20de%20um%20ano%20atr%C3%A1s.%20O%20artigo%20%C3%A9%20sobre%20o%20VIM%20%28Vi%20IMproved%29%2C%20este%20editor%20%28fant%C3%A1stico%20diga-se%20de%20passagem%29%20que%20tenho%20usado%20pouco%20nos%20%C3%BAltimos%20tempos%2C%20agora%20%C3%A9&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmini-manual-vim-vi-improved%2F&amp;=Mini%20manual%20VIM%20%28Vi%20IMproved%29" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/mini-manual-vim-vi-improved/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Manipulação de diretórios simples e fácil de usar com a classe X_Dir</title>
		<link>http://www.blogdoxorna.com.br/manipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir/</link>
		<comments>http://www.blogdoxorna.com.br/manipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 00:56:54 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[classe]]></category>
		<category><![CDATA[desenvolvimento php]]></category>
		<category><![CDATA[exemplos]]></category>
		<category><![CDATA[manipulação de diretórios]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com.br/?p=141</guid>
		<description><![CDATA[Buenas pessoal, como muitos programadores eu cansei de ficar me esquentando cada vez que precisava manipular algum diretório, então após algumas lidas, alguns testes, montei uma classe que trabalha bem, claro que ela trabalha bem em sistema Unix Like, não perdi meu tempo e nem tenho como portar no windows, então abaixo segue a classe:
&#60;?php
/**
 [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas pessoal, como muitos programadores eu cansei de ficar me esquentando cada vez que precisava manipular algum diretório, então após algumas lidas, alguns testes, montei uma classe que trabalha bem, claro que ela trabalha bem em sistema Unix Like, não perdi meu tempo e nem tenho como portar no windows, então abaixo segue a classe:</p>
<pre>&lt;?php
/**
 * Classe para manipulação de diretórios
 * Exclusivo para uso em sistemas Unix Like
 * Sem vontade para portar para plataforma MS
 * @author André Gustavo Espeiorin
 * @version 1.0
 * @package X
 */
class X_Dir
{
	/**
	 * Metodo Responsavel pela criação de diretórios
	 * @param $location - onde a pasta deve ser criada
	 * @param $name - nome da mesma, evite o uso de caracteres especiais e espaços em branco
	 * @param $chmod - permissão para o acesso a nova pasta
	 * @param $recursive - criar recursivamente?
	 * @return &lt;string&gt; caminho da pasta criada
	 */
	public static function create($location, $name, $chmod=0777, $recursive=true)
	{
		$path = $location . $name;
		/**
		 * Supressão de erro não aconselhada, porém caso a pasta exista
		 * o PHP lançará um aviso, coisa que nao queremos caso haja
		 * redirecionamento após a criação da mesma
		 */
		if( @mkdir( $path, $chmod, $recursive ) ){
			chmod( $path, $chmod );
			return $path . '/';
		} else{
			if( is_writable($path) &amp;&amp; is_readable($path) ){
				return $path;
			}else{
				echo 'erro';
			}
		}
	}

	/**
	 * Método criado para apagar um arquivo unicamente, e não um diretório
	 * Pode apagar arquivos e links simbólicos
	 * @param $fileName - Nome do arquivo
	 * @return &lt;boolean&gt;
	 */
	public static function removeFile($fileName)
	{
		if ( is_file($fileName) || is_link($fileName) ) {
        	return unlink($fileName);
    	}else{
    		return false;
    	}
	}

	/**
	 * Método responável por remover um diretório, é capaz de remover
	 * um diretório completo, incluindo subdiretórios e arquivos por meio
	 * da recursividade.
	 * @param $dirname - nome do diretório como seu caminho completo no Sistema de Arquvios
	 * @return &lt;boolean&gt;
	 */
	public static function remove($dirname)
	{
		// Checa se existe o diretório
    	if ( !file_exists($dirname) ) {
        	return false;
    	}

    	/**
    	 * Caso encontrar um arquivo em meio a recursividade, ele o removerá
    	 * tratando ele como um arquivo e não diretório
    	 */
    	if (is_file($dirname) || is_link($dirname)) {
        	return self::removeFile($dirname);
    	}

    	/**
    	 * Abre o diretório chamado como um objeto dir
    	 * Faz a iteração no mesmo, lendo seu interior
    	 * e chamando recursivamente o mesmo até eliminar
    	 * todo o conteúdo do diretório
    	 * @var &lt;object&gt; diretório
    	 */
    	$dir = dir($dirname);
   		while (false !== $entry = $dir-&gt;read()) {
        	// Pula os ponteiros
        	if ($entry == '.' || $entry == '..') {
          	  continue;
        	}
        	// Chama novamente a função
    	    self::remove( $dirname . DIRECTORY_SEPARATOR . $entry );
    	}
    	// Fechamos nosso objeto dir
   		$dir-&gt;close();
   		// Finalmente remove nosso diretório
    	return rmdir($dirname);
	}

	/**
	 * Este método é utilizado na necessidade de renomear um diretório
	 * Utiliza recursividade para sub-diretórios e funcionou muito
	 * bem em todos os testes
	 * @param $path - Caminho até a localização do diretório a ser renomeado
	 * @param $oldDir - Nome do diretório a ser renomeado
	 * @param $newDir - Novo Nome para o diretório
	 * @return &lt;boolean&gt;
	 */
	public static function rename($path, $oldDir, $newDir)
	{
		// Checa se o diretório existe
    	if (!file_exists($path . $oldDir)) {
        	return false;
    	}   	

    	// Cria o novo diretório
    	$new = self::create($path, $newDir);

    	/**
    	 * Abre o velho diretório e itera ele, transferindo todos os arquivos para o novo
    	 * Os subdiretórios são transferidos do mesmo modo, por meio de recursividade
    	 * @var &lt;object&gt; dir
    	 */
    	$dir = dir($path . $oldDir);
   		while (false !== $entry = $dir-&gt;read()) {
        	// Pula os Ponteiros
        	if ($entry == '.' || $entry == '..') {
          	  continue;
        	}
        	// Se o conteudo for um diretório, recursividade!
        	if( is_dir($new . $entry) ){
        		self::rename($path . $oldDir, $entry, $path . $new . $entry );
        	}
        	// Aqui é feita a transferencia de arquivos
        	rename( $path . $oldDir . '/' . $entry, $new . $entry );
    	}
    	// Fecha o objeto
   		$dir-&gt;close();
   		// Remove o diretório antigo
   		self::remove( $path . $oldDir );
   		return true;
	}
}</pre>
<p>Aqui vai um pequenino exemplo de como isso pode facilitar sua vida:</p>
<pre># vamos criar um diretório
echo X_Dir::create('/var/www/arigos/', 'aaa');
# agora outro dele
echo X_Dir::create('/var/www/arigos/aaa/', 'qwe1');
# antes do próximo passo, crie vários arquivos dentro das pastas... algo como:
$ touch aaa/teste.wtf
$ touch aaa/teste.sql
$ touch aaa/teste.php
$ touch aaa/qwe1/teste.php
$ touch aaa/qwe1/teste.asd
$ touch aaa/qwe1/teste.123
# agora renomeamos a pasta pai
echo X_Dir::rename('/var/www/arigos/', 'aaa', 'bbb');
# removemos um unico arquivo
echo X_Dir::removeFile('/var/www/arigos/bbb/qwe1/teste.123');
# e apagamos por completo tudo!
echo X_Dir::remove('/var/www/arigos/bbb/');</pre>
<p>Muito simples, os &#8220;echos&#8221; que estão aí são somente para ver o que ta retornando, pois agora sua obrigação é testar se ta criando, renomenando e apagando&#8230;</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;title=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;title=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;title=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;t=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;title=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;title=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;title=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;title=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Buenas%20pessoal%2C%20como%20muitos%20programadores%20eu%20cansei%20de%20ficar%20me%20esquentando%20cada%20vez%20que%20precisava%20manipular%20algum%20diret%C3%B3rio%2C%20ent%C3%A3o%20ap%C3%B3s%20algumas%20lidas%2C%20alguns%20testes%2C%20montei%20uma%20classe%20que%20trabalha%20bem%2C%20claro%20que%20ela%20trabalha%20bem%20em%20sistema%20Unix%20L" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;title=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;story_title=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;name=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;submitHeadline=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir&amp;submitSummary=Buenas%20pessoal%2C%20como%20muitos%20programadores%20eu%20cansei%20de%20ficar%20me%20esquentando%20cada%20vez%20que%20precisava%20manipular%20algum%20diret%C3%B3rio%2C%20ent%C3%A3o%20ap%C3%B3s%20algumas%20lidas%2C%20alguns%20testes%2C%20montei%20uma%20classe%20que%20trabalha%20bem%2C%20claro%20que%20ela%20trabalha%20bem%20em%20sistema%20Unix%20L&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmanipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir%2F&amp;=Manipula%C3%A7%C3%A3o%20de%20diret%C3%B3rios%20simples%20e%20f%C3%A1cil%20de%20usar%20com%20a%20classe%20X_Dir" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/manipulacao-de-diretorios-simples-e-facil-de-usar-com-a-classe-x_dir/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Classe para buscar dados de GeoLocalização</title>
		<link>http://www.blogdoxorna.com.br/classe-para-buscar-dados-de-geolocalizacao/</link>
		<comments>http://www.blogdoxorna.com.br/classe-para-buscar-dados-de-geolocalizacao/#comments</comments>
		<pubDate>Thu, 28 May 2009 01:15:56 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[classe]]></category>
		<category><![CDATA[free api]]></category>
		<category><![CDATA[geo localização]]></category>
		<category><![CDATA[simples]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com.br/?p=135</guid>
		<description><![CDATA[Buenas pessoal, depois de um tempo meio sem tempo pra postar, mudança nas prioridades e tudo mais, o Doctrine acabou ficando para um pouco depois, mas para cortar o silêncio que aqui se instaurou, vou aproveitar e postar uma classe na qual montei agora, muito simples, usa a API de um webservice gratuito de busca [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas pessoal, depois de um tempo meio sem tempo pra postar, mudança nas prioridades e tudo mais, o Doctrine acabou ficando para um pouco depois, mas para cortar o silêncio que aqui se instaurou, vou aproveitar e postar uma classe na qual montei agora, muito simples, usa a API de um webservice gratuito de busca de dados de Geolocalização, bem simples mas pra mim ficou eficiente e rápido, espero que gostem.</p>
<pre>&lt;?php
/**
 * Classe para busca de dados de geolocalização
 * utiliza um webservice gratuito do iplocationtools.com
 * utilizando o formato json como padrão, por ser mais leve e ágil para tratar
 * @author André Gustavo Espeiorin &lt;andregustavodocaqui@gmail.com&gt;
 * @version 1.0
 * @package X
 *
 */
class X_Location
{
	/**
	 * Formato Padrão
	 * @var &lt;string&gt;
	 * @access private
	 */
	private $_format = 'json';

	/**
	 * Endereço inicial para a pesquisa
	 * @var &lt;string&gt;
	 * @access private
	 */
	private $_queryUrl = 'http://iplocationtools.com/ip_query.php?ip=';

	/**
	 * Objecto de consulta do CURLs
	 * @var &lt;object&gt;
         * @access private
	 */
	private $_ch;

	/**
	 * Dados tratados
	 * @var &lt;array&gt;
	 * @access private
	 */
	private $_data;

	/**
	 * Construtor da Classe, recebe o parrametro &lt;string&gt; format
	 * Caso o paramêtro não seja passado, usa o padrão do sistema
	 * @return &lt;void&gt;
	 */
	public function __construct()
	{
		$this-&gt;_ch = curl_init();
	}

	/**
	 * Método que faz a consulta e tratamento dos dados, recebe o ip
	 * a ser consultado como parâmetro
	 * @param $ip
	 * @return &lt;boolean&gt;
	 */
	public function getData($ip)
	{
		if( isset($ip) &amp;&amp; !empty($ip) ){
			curl_setopt($this-&gt;_ch, CURLOPT_URL, $this-&gt;_queryUrl . $ip . '&amp;output=' . $this-&gt;_format);
			curl_setopt($this-&gt;_ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($this-&gt;_ch, CURLOPT_TIMEOUT, 15);

			$request = curl_exec($this-&gt;_ch);
			if( isset($request) &amp;&amp; !empty($request) ){
				$this-&gt;_data = json_decode($request, true);
				return true;
			} else{
				return false;
			}
		} else{
			return false;
		}
	}

	/**
	 * Método utilizado para pegar os dados de _data, caso o keyName seja ignorado, retorna o array inteiro
	 * Aqui eu listo as chaves que podem ser buscadas:
	 * -Ip
	 * -Status
	 * -CountryCode
	 * -CountryName
	 * -RegionCode
	 * -RegionName
	 * -City
	 * -ZipPostalCode
	 * -Latitude
	 * -Longitude
	 * @param $paramName
	 * @return &lt;array&gt; | &lt;string&gt;
	 */
	public function get($keyName='')
	{
		if( isset($keyName) &amp;&amp; !empty($keyName) ){
			return $this-&gt;_data[$keyName];
		}else{
			return $this-&gt;_data;
		}
	}

}</pre>
<p>Show, se a classe parece simples, imagine seu uso, abaixo pequeno exemplo:</p>
<pre>$gl = new X_Location();
$gl-&gt;getData('seuIp');
echo $gl-&gt;get('City');
// ou
var_dump($gl-&gt;get());</pre>
<p>Bom, espero que seja útil a todos, agradeço sua visita!</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;t=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Buenas%20pessoal%2C%20depois%20de%20um%20tempo%20meio%20sem%20tempo%20pra%20postar%2C%20mudan%C3%A7a%20nas%20prioridades%20e%20tudo%20mais%2C%20o%20Doctrine%20acabou%20ficando%20para%20um%20pouco%20depois%2C%20mas%20para%20cortar%20o%20sil%C3%AAncio%20que%20aqui%20se%20instaurou%2C%20vou%20aproveitar%20e%20postar%20uma%20classe%20na%20qual%20montei%20a" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;story_title=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;name=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;submitHeadline=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o&amp;submitSummary=Buenas%20pessoal%2C%20depois%20de%20um%20tempo%20meio%20sem%20tempo%20pra%20postar%2C%20mudan%C3%A7a%20nas%20prioridades%20e%20tudo%20mais%2C%20o%20Doctrine%20acabou%20ficando%20para%20um%20pouco%20depois%2C%20mas%20para%20cortar%20o%20sil%C3%AAncio%20que%20aqui%20se%20instaurou%2C%20vou%20aproveitar%20e%20postar%20uma%20classe%20na%20qual%20montei%20a&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fclasse-para-buscar-dados-de-geolocalizacao%2F&amp;=Classe%20para%20buscar%20dados%20de%20GeoLocaliza%C3%A7%C3%A3o" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/classe-para-buscar-dados-de-geolocalizacao/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Doctrine ORM, Parte II</title>
		<link>http://www.blogdoxorna.com.br/doctrine-orm-parte-ii/</link>
		<comments>http://www.blogdoxorna.com.br/doctrine-orm-parte-ii/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 04:02:07 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Padrões]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[conexão]]></category>
		<category><![CDATA[Configuração]]></category>
		<category><![CDATA[Doctrine ORM]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com.br/?p=123</guid>
		<description><![CDATA[Bom, como prometido, o segundo capitulo da Saga &#8220;Doctrine ORM&#8221; vou abordar questões simples como o download da ferramenta, &#8220;instalação&#8221;, e configuração da mesma, deixando a primeira aplicação para o terceiro post, devido sua extensão.
Para baixa o Doctrine ORM é muito simples, basta acessar a página de download oficial, e selecionar a versão desejada, eu [...]]]></description>
			<content:encoded><![CDATA[<p>Bom, como prometido, o segundo capitulo da Saga &#8220;Doctrine ORM&#8221; vou abordar questões simples como o download da ferramenta, &#8220;instalação&#8221;, e configuração da mesma, deixando a primeira aplicação para o terceiro post, devido sua extensão.</p>
<p>Para baixa o Doctrine ORM é muito simples, basta acessar a <a title="Dotrine ORM official download site" href="http://www.doctrine-project.org/download" onclick="javascript:TrackClick('http%3A%2F%2Fwww.doctrine-project.org%2Fdownload','Dotrine+ORM+official+download+site')" target="_blank">página de download oficial</a>, e selecionar a versão desejada, eu aconselho a baixar a última versão stable (atualmente 1.1.0). Após o download, descompacte o arquivo, para o uso em produção você vai precisar somente da pasta lib e de seu conteúdo é claro, tomando como exemplo o ubuntu, vamos criar uma aplicação chamada doctrineTest em /var/www (com as devidas permissões de escrita na pasta):</p>
<pre>$ cd /var/www
$ mkdir doctrineTest
# vá até a pasta Dotrine-1.x.x
$ cp -R lib /var/www/doctrineTest
# aproveita e cria o index.php
$ touch index.php
# vamos criar uma classe para autoload
$ cd /var/www/lib
$ mkdir Util
$ touch Autoload.class.php</pre>
<p>Justo, agora já temos o inicio de nossa aplicação salva no diretório de site do apache, vamos começar a configuração e a entender tudo isso. Abra seu editor preferido (eclipse no meu caso), abra o arquivo lib/util/autoload.class.php, vamos fazer um pequeno truque para nos livrarmos dos includes.</p>
<pre>class Util_Autoload
{
    public function autoload($class)
    {
        $path = str_replace('_', '/', $class) . '.php';
        require_once($path);
        return true;
    }
}</pre>
<p>Feito isso, vamos ao nosso index.php, primeiro vamos configurar nosso autoload <img src='http://www.blogdoxorna.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre>/* Adicionando a pasta libs ao include_path do php */
$include_path  = get_include_path();
$include_path .= PATH_SEPARATOR . dirname(__FILE__) . '/lib';
set_include_path($include_path);
unset($include_path);

/* registrando nossa classe autoload */
require_once(dirname(__FILE__) . '/lib/Util/Autoload.class.php');
spl_autoload_register(array('Util_Autoload', 'autoload'));</pre>
<p>Legal, a essa altura qualquer classe que quisermos carregar dentro de libs estará disponível, agora vamos abrir nossa primeira conexão com o banco de dados (no exemplo MySQL):</p>
<pre>$dsn = 'mysql://username:password@127.0.0.1/doctrineTest';
$manager = Doctrine_Manager::getInstance();
$conn = $manager-&gt;connection($dsn, 'master');
</pre>
<p>Bom, agora já conseguimos conectar a aplicação com o banco de dados, para finalizarmos este capitulo vamos fazer um pequeno teste de conexão, certifique-se que o usuário no qual você está conectando tenha permissões de CREATE no banco de dados. Vamos criar uma tabela e depois inserir dados nela:</p>
<pre>
$conn-&gt;export-&gt;createTable('teste', array('nome' =&gt; array('type' =&gt; 'string')));
$conn-&gt;execute('INSERT INTO teste (nome) VALUES (?)', array('blogdoxorna'));</pre>
<p>Legal, tabela criada, uma linha inserida, agora vamos ler pra ver se é verdade que tá gravando (claro, comentando a linha do create pra não dar pau!) <img src='http://www.blogdoxorna.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<pre>$st = $conn-&gt;prepare('SELECT * FROM teste');
$st-&gt;execute();
$resultset = $st-&gt;fetchAll();
var_dump($resultset);</pre>
<p>O que deve aparecer aí no browser é mais ou menos isso:</p>
<pre>
array
  0 =>
    array
      'nome' => string 'blogdoxorna' (length=11)
      0 => string 'blogdoxorna' (length=11)
</pre>
<p>Bom, encerro aqui o meu post, e lembrando que se eu sair vivo do #NOB #TwitteirosDeJoinville no Biergarten, eu posto a terceira parte ainda hoje 29/04 a noite <img src='http://www.blogdoxorna.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;title=Doctrine%20ORM%2C%20Parte%20II" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;title=Doctrine%20ORM%2C%20Parte%20II" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;title=Doctrine%20ORM%2C%20Parte%20II" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;t=Doctrine%20ORM%2C%20Parte%20II" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;title=Doctrine%20ORM%2C%20Parte%20II" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;title=Doctrine%20ORM%2C%20Parte%20II" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Doctrine%20ORM%2C%20Parte%20II&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;title=Doctrine%20ORM%2C%20Parte%20II" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;title=Doctrine%20ORM%2C%20Parte%20II&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Bom%2C%20como%20prometido%2C%20o%20segundo%20capitulo%20da%20Saga%20%22Doctrine%20ORM%22%20vou%20abordar%20quest%C3%B5es%20simples%20como%20o%20download%20da%20ferramenta%2C%20%22instala%C3%A7%C3%A3o%22%2C%20e%20configura%C3%A7%C3%A3o%20da%20mesma%2C%20deixando%20a%20primeira%20aplica%C3%A7%C3%A3o%20para%20o%20terceiro%20post%2C%20devido%20sua%20extens%C3%A3o.%0D%0A%0D%0APara" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;title=Doctrine%20ORM%2C%20Parte%20II" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Doctrine%20ORM%2C%20Parte%20II&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;story_title=Doctrine%20ORM%2C%20Parte%20II" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;name=Doctrine%20ORM%2C%20Parte%20II" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;submitHeadline=Doctrine%20ORM%2C%20Parte%20II&amp;submitSummary=Bom%2C%20como%20prometido%2C%20o%20segundo%20capitulo%20da%20Saga%20%22Doctrine%20ORM%22%20vou%20abordar%20quest%C3%B5es%20simples%20como%20o%20download%20da%20ferramenta%2C%20%22instala%C3%A7%C3%A3o%22%2C%20e%20configura%C3%A7%C3%A3o%20da%20mesma%2C%20deixando%20a%20primeira%20aplica%C3%A7%C3%A3o%20para%20o%20terceiro%20post%2C%20devido%20sua%20extens%C3%A3o.%0D%0A%0D%0APara&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-ii%2F&amp;=Doctrine%20ORM%2C%20Parte%20II" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/doctrine-orm-parte-ii/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Doctrine ORM, Parte I</title>
		<link>http://www.blogdoxorna.com.br/doctrine-orm-parte-i/</link>
		<comments>http://www.blogdoxorna.com.br/doctrine-orm-parte-i/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 02:53:23 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Padrões]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Active Record]]></category>
		<category><![CDATA[desenvolvimento php]]></category>
		<category><![CDATA[Doctrine Query Language]]></category>
		<category><![CDATA[Dotrine ORM]]></category>
		<category><![CDATA[DQL]]></category>
		<category><![CDATA[Mapeamento Objeto Relacional]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com.br/?p=120</guid>
		<description><![CDATA[Eram meados de Outubro/2008 quando eu, que na época trabalhava em Brasília, no ministério da educação recebi um email com um convite interessante, participar do CONAPHP (Congresso Nacional de PHP), evento que seria realizado dentro do CONISL (Congresso Internacional de Software Livre), após ver a grade de palestras me interessei muito, pois lá estariam bons [...]]]></description>
			<content:encoded><![CDATA[<p>Eram meados de Outubro/2008 quando eu, que na época trabalhava em Brasília, no ministério da educação recebi um email com um convite interessante, participar do <a title="Congresso Nacional de PHP" href="http://www.conaphp.prophp.com.br/" onclick="javascript:TrackClick('http%3A%2F%2Fwww.conaphp.prophp.com.br%2F','Congresso+Nacional+de+PHP')" target="_blank">CONAPHP (Congresso Nacional de PHP)</a>, evento que seria realizado dentro do <a title="Link para artigo CONISLI na Wikipedia" href="http://pt.wikipedia.org/wiki/Conisli" onclick="javascript:TrackClick('http%3A%2F%2Fpt.wikipedia.org%2Fwiki%2FConisli','Link+para+artigo+CONISLI+na+Wikipedia')" target="_blank">CONISL (Congresso Internacional de Software Livre)</a>, após ver a grade de palestras me interessei muito, pois lá estariam bons palestrantes como o <a href="http://www.fgsl.eti.br/" onclick="javascript:TrackClick('http%3A%2F%2Fwww.fgsl.eti.br%2F','')" target="_blank">Flávio Gomes (zend framework)</a>, <a href="http://blog.bisna.com/" onclick="javascript:TrackClick('http%3A%2F%2Fblog.bisna.com%2F','')" target="_blank">Guilherme Blanco (Doctrine ORM)</a>, <a href="http://www.eltonminetto.net/" onclick="javascript:TrackClick('http%3A%2F%2Fwww.eltonminetto.net%2F','')" target="_blank">Elton Minetto (Desenvolvimento Web Escalável)</a> entre outros. Essas três palestras me interessavam muito pois estavam totalmente de acordo com meus interesses e necessidades. Bom após a palestra do Guilherme Blanco sobre Doctrine, eu fiquei maravilhado com essa ferramenta, tanto que após a palestra dei um jeito de pegar o contato dele para poder tirar dúvidas e realmente começar a utilizar isso em meu trabalho. Voltei para Brasília, terminei a implantação do Zend Framework em minha equipe, fiz o acoplamento do Doctrine ORM dentro da estrutura do Zend Framework, e por uma sucessão de eventos vim para Joinville integrar a equipe da Drimio sob o &#8220;comando&#8221; de Elton Minetto. Mas tudo isso foi só para explicar como cheguei ao Doctrine ORM. A partir de agora sim, estarei fazendo uma breve introdução (na melhor das intenções) ao assunto.</p>
<p><strong>O que é Dotrine ORM?</strong></p>
<p>O <a title="Dotrine ORM official website" href="http://www.doctrine-project.org/" onclick="javascript:TrackClick('http%3A%2F%2Fwww.doctrine-project.org%2F','Dotrine+ORM+official+website')" target="_blank">Doctrine ORM</a>, como seu próprio nome diz, é uma ferramenta de <a title="Artigo para ORM na wikipedia" href="http://pt.wikipedia.org/wiki/Orm" onclick="javascript:TrackClick('http%3A%2F%2Fpt.wikipedia.org%2Fwiki%2FOrm','Artigo+para+ORM+na+wikipedia')" target="_blank">ORM (Object-relational mapping)</a> ou no bom e velho pt-br: Mapeamento Objeto-Relacional. Foi concebida sob a licensa <a href="http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License" onclick="javascript:TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FGNU_Lesser_General_Public_License','')" target="_blank">GNU Lesser General Public License</a>. Suas principais influências foram o <a href="http://www.hibernate.org/" onclick="javascript:TrackClick('http%3A%2F%2Fwww.hibernate.org%2F','')" target="_blank">Hibernate(Java)</a> e o <a href="http://ar.rubyonrails.org/" onclick="javascript:TrackClick('http%3A%2F%2Far.rubyonrails.org%2F','')" target="_blank">ActiveRecord(Rails)</a>. Atualmente se encontra na versão 1.1.0 (estável) e é compatível com <a href="http://www.php.net/releases/5_2_3.php" onclick="javascript:TrackClick('http%3A%2F%2Fwww.php.net%2Freleases%2F5_2_3.php','')" target="_blank">PHP 5.2.3+</a> pois o mesmo utiliza a biblioteca <a href="http://br.php.net/pdo" onclick="javascript:TrackClick('http%3A%2F%2Fbr.php.net%2Fpdo','')" target="_blank">PDO</a>.</p>
<p><strong>Mas o que exatamente esse tal de Doctrine ORM faz?</strong></p>
<p>Sua função simplificando, é reduzir a <a href="http://pt.wikipedia.org/wiki/Imped%C3%A2ncia" onclick="javascript:TrackClick('http%3A%2F%2Fpt.wikipedia.org%2Fwiki%2FImped%25C3%25A2ncia','')" target="_blank">impedância</a> do uso de Banco de Dados Relacionais e Sistemas Orientados a Objetos. Ele utiliza o Design Pattern <a href="http://pt.wikipedia.org/wiki/Active_record" onclick="javascript:TrackClick('http%3A%2F%2Fpt.wikipedia.org%2Fwiki%2FActive_record','')" target="_blank">Active Record</a> para fazer abstração entre as tabelas do banco de dados e as suas respectivas classes, ou seja, para cada tabela no banco teremos uma classe correspondente. Sendo possível delegar a responsabilidade da criação das classes para o doctrine, mas isso é um outro assunto.</p>
<p><strong>Legal, e tem mais? &#8211; Muito Mais&#8230;</strong></p>
<p>Inspirado no <a href="http://www.hibernate.org/hib_docs/v3/reference/en/html/queryhql.html" onclick="javascript:TrackClick('http%3A%2F%2Fwww.hibernate.org%2Fhib_docs%2Fv3%2Freference%2Fen%2Fhtml%2Fqueryhql.html','')" target="_blank">HQL (Hibernate) </a>foi criado o<a href="http://www.doctrine-project.org/documentation/manual/1_0/ja/dql-doctrine-query-language" onclick="javascript:TrackClick('http%3A%2F%2Fwww.doctrine-project.org%2Fdocumentation%2Fmanual%2F1_0%2Fja%2Fdql-doctrine-query-language','')" target="_blank"> DQL (Doctrine Query Language)</a> que eu acho muito bom, facilita muito na hora de criarmos consultas enxutas ou que tenham relacionamentos a serem pesquisados. Além disso há também a possibilidade de executar consultas com SQL nativo, mas é desencorajado, visto que uma parte do seu problema antes de usá-lo são justamente consultas com SQL nativos.</p>
<p><strong>Fale-me mais Xorna, e é fácil para se achar? aprender mais? &#8211; É claro!!</strong></p>
<p>Ele possuí uma boa documentação, com bastantes artigos, e uma comunidade de usuários que tende a crescer visto sua facilidade de acoplamento com frameworks populares. No próximo post daremos o ponta pé inicial em nossos estudos, mostrarei a instalação, estrutura de diretórios e começaremos nosso primeiro exemplo.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;title=Doctrine%20ORM%2C%20Parte%20I" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;title=Doctrine%20ORM%2C%20Parte%20I" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;title=Doctrine%20ORM%2C%20Parte%20I" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;t=Doctrine%20ORM%2C%20Parte%20I" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;title=Doctrine%20ORM%2C%20Parte%20I" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;title=Doctrine%20ORM%2C%20Parte%20I" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Doctrine%20ORM%2C%20Parte%20I&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;title=Doctrine%20ORM%2C%20Parte%20I" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;title=Doctrine%20ORM%2C%20Parte%20I&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Eram%20meados%20de%20Outubro%2F2008%20quando%20eu%2C%20que%20na%20%C3%A9poca%20trabalhava%20em%20Bras%C3%ADlia%2C%20no%20minist%C3%A9rio%20da%20educa%C3%A7%C3%A3o%20recebi%20um%20email%20com%20um%20convite%20interessante%2C%20participar%20do%20CONAPHP%20%28Congresso%20Nacional%20de%20PHP%29%2C%20evento%20que%20seria%20realizado%20dentro%20do%20CONISL%20%28Co" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;title=Doctrine%20ORM%2C%20Parte%20I" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Doctrine%20ORM%2C%20Parte%20I&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;story_title=Doctrine%20ORM%2C%20Parte%20I" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;name=Doctrine%20ORM%2C%20Parte%20I" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;submitHeadline=Doctrine%20ORM%2C%20Parte%20I&amp;submitSummary=Eram%20meados%20de%20Outubro%2F2008%20quando%20eu%2C%20que%20na%20%C3%A9poca%20trabalhava%20em%20Bras%C3%ADlia%2C%20no%20minist%C3%A9rio%20da%20educa%C3%A7%C3%A3o%20recebi%20um%20email%20com%20um%20convite%20interessante%2C%20participar%20do%20CONAPHP%20%28Congresso%20Nacional%20de%20PHP%29%2C%20evento%20que%20seria%20realizado%20dentro%20do%20CONISL%20%28Co&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fdoctrine-orm-parte-i%2F&amp;=Doctrine%20ORM%2C%20Parte%20I" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/doctrine-orm-parte-i/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A teoria da tosa de porcos</title>
		<link>http://www.blogdoxorna.com.br/a-teoria-da-tosa-de-porcos/</link>
		<comments>http://www.blogdoxorna.com.br/a-teoria-da-tosa-de-porcos/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 18:20:44 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Literatura]]></category>
		<category><![CDATA[teorias sem sentido]]></category>
		<category><![CDATA[tosa de porco]]></category>
		<category><![CDATA[verdades]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com.br/?p=117</guid>
		<description><![CDATA[Antes de mais nada gostaria de esclarecer que o título desse post é meramente uma metáfora. Ela se refere a certas situações no dia-a-dia onde uma ou mais pessoas afim de resolverem um problema criam mais problemas, ao invés de manter a simplicidade na solução do problema.
Vamos aos fatos:
Há um problema que deve ser resolvido, [...]]]></description>
			<content:encoded><![CDATA[<p>Antes de mais nada gostaria de esclarecer que o título desse post é meramente uma metáfora. Ela se refere a certas situações no dia-a-dia onde uma ou mais pessoas afim de resolverem um problema criam mais problemas, ao invés de manter a simplicidade na solução do problema.</p>
<p><strong>Vamos aos fatos:</strong></p>
<p>Há um problema que deve ser resolvido, na maior parte das vezes simples, há também interessados em resolver este problema, e na maioria das vezes há alguém querendo complicar tudo, talvez achando que quanto mais complicada a solução maiores serão seus méritos, mas o que na verdade faz é gerar mais problemas.</p>
<p><strong>Por que Tosa de Porco ?</strong></p>
<p>Bom, essa expressão é um &#8220;ditado&#8221; lá do bom e velho Rio Grande do Sul, que diz que algo está como &#8220;tosa de porco: pouco pêlo e muito grito&#8221;, ou seja, se fala demais, é perdido muito tempo em algo que está óbvio, prática comum entre pessos de ego inflado ou que necessitam diariamente de doses de reconhecimento por parte de colegas de trabalho e seus &#8220;chefes&#8221;. Não que isso chegue a ser defeito em uma pessoa, pois todos nós somos humanos, mas por favor, precisa fazer reunião pra decidir até a quantidade de pó a ser colocado no café da equipe? (rsrs)</p>
<p><strong>A solução</strong></p>
<p>Sem tosar nenhum porquinho, vamos rapidamente a solução. Você tem um problema, precisa partir do ponto A até o ponto B, a boa e velha matemática nos ensina que a menor distância entre dois pontos é uma reta, pronto, sem rodeios ou voltas parta em linha reta a solução do problema, sem criar mais variáveis dentro do mesmo problema. Como já dizia a <a title="Página na Wikipedia sobre a Navalha de Occam" href="http://pt.wikipedia.org/wiki/Navalha_de_Occam" onclick="javascript:TrackClick('http%3A%2F%2Fpt.wikipedia.org%2Fwiki%2FNavalha_de_Occam','P%C3%A1gina+na+Wikipedia+sobre+a+Navalha+de+Occam')" target="_blank">Navalha de Occam</a>:</p>
<ul>
<li><em>pluralitas non est ponenda sine neccesitate</em> (pluralidades não devem ser postas sem necessidade) *</li>
<li><em>entia non sunt multiplicanda praeter necessitatem</em> (as entidades não devem ser multiplicadas além do necessário). Esta frase foi cunhada em 1639, por <span class="new">John Ponce de Cork</span>. *</li>
</ul>
<p>O blogdoxorna.com.br não tosou nenhum porquinho sequer ao postar esse artigo.</p>
<p><em>* Fonte: <a href="http://pt.wikipedia.org/wiki" onclick="javascript:TrackClick('http%3A%2F%2Fpt.wikipedia.org%2Fwiki','')" target="_blank">Wikipedia</a></em></p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;title=A%20teoria%20da%20tosa%20de%20porcos" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;title=A%20teoria%20da%20tosa%20de%20porcos" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;title=A%20teoria%20da%20tosa%20de%20porcos" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;t=A%20teoria%20da%20tosa%20de%20porcos" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;title=A%20teoria%20da%20tosa%20de%20porcos" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;title=A%20teoria%20da%20tosa%20de%20porcos" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=A%20teoria%20da%20tosa%20de%20porcos&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;title=A%20teoria%20da%20tosa%20de%20porcos" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;title=A%20teoria%20da%20tosa%20de%20porcos&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Antes%20de%20mais%20nada%20gostaria%20de%20esclarecer%20que%20o%20t%C3%ADtulo%20desse%20post%20%C3%A9%20meramente%20uma%20met%C3%A1fora.%20Ela%20se%20refere%20a%20certas%20situa%C3%A7%C3%B5es%20no%20dia-a-dia%20onde%20uma%20ou%20mais%20pessoas%20afim%20de%20resolverem%20um%20problema%20criam%20mais%20problemas%2C%20ao%20inv%C3%A9s%20de%20manter%20a%20simplic" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;title=A%20teoria%20da%20tosa%20de%20porcos" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=A%20teoria%20da%20tosa%20de%20porcos&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;story_title=A%20teoria%20da%20tosa%20de%20porcos" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;name=A%20teoria%20da%20tosa%20de%20porcos" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;submitHeadline=A%20teoria%20da%20tosa%20de%20porcos&amp;submitSummary=Antes%20de%20mais%20nada%20gostaria%20de%20esclarecer%20que%20o%20t%C3%ADtulo%20desse%20post%20%C3%A9%20meramente%20uma%20met%C3%A1fora.%20Ela%20se%20refere%20a%20certas%20situa%C3%A7%C3%B5es%20no%20dia-a-dia%20onde%20uma%20ou%20mais%20pessoas%20afim%20de%20resolverem%20um%20problema%20criam%20mais%20problemas%2C%20ao%20inv%C3%A9s%20de%20manter%20a%20simplic&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fa-teoria-da-tosa-de-porcos%2F&amp;=A%20teoria%20da%20tosa%20de%20porcos" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/a-teoria-da-tosa-de-porcos/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Crie o favicon para seu site&#8230; incluindo iPhone também!</title>
		<link>http://www.blogdoxorna.com.br/crie-o-favicon-para-seu-site-incluindo-iphone-tambem/</link>
		<comments>http://www.blogdoxorna.com.br/crie-o-favicon-para-seu-site-incluindo-iphone-tambem/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 13:03:36 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com/crie-o-favicon-para-seu-site-incluindo-iphone-tambem/</guid>
		<description><![CDATA[Buenas, post rapinho, já que não disponho de tanto tempo assim, estou aqui só para falar de duas coisas rápidas, a primeira é a promoção Você na drimio, onde você pode ganhar um iPod Shuffle de 2GB, particularmente eu queria participar, mas me baniram hahaha. Enfim basta ir até o endereço http://www.drimio.com/vocenadrimio/. Mas agora vamos [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas, post rapinho, já que não disponho de tanto tempo assim, estou aqui só para falar de duas coisas rápidas, a primeira é a promoção <a href="http://www.drimio.com/vocenadrimio/" onclick="javascript:TrackClick('http%3A%2F%2Fwww.drimio.com%2Fvocenadrimio%2F','')" onclick="javascript:TrackClick('http%3A%2F%2Fwww.drimio.com%2Fvocenadrimio%2F','')" target="_blank">Você na drimio</a>, onde você pode ganhar um iPod Shuffle de 2GB, particularmente eu queria participar, mas me baniram hahaha. Enfim basta ir até o endereço <a href="http://www.drimio.com/vocenadrimio/" onclick="javascript:TrackClick('http%3A%2F%2Fwww.drimio.com%2Fvocenadrimio%2F','')" onclick="javascript:TrackClick('http%3A%2F%2Fwww.drimio.com%2Fvocenadrimio%2F','')" target="_blank">http://www.drimio.com/vocenadrimio/</a>. Mas agora vamos ao post, hoje decidi escrever sobre um assunto rápido e que parte dele é abordado as pampas aqui na internet. Mas a segunda parte não, criar um favicon é moleza, todo mundo já sabe, mas nem todo mundo já criou seu favicon para iPhone, certo?</p>
<p><strong>Criando o favicon para o seu pc:</strong></p>
<p>Basta você pegar a imagem em questão, com no minimo 16&#215;16px (pode ser 32&#215;32px, já que o IE faz o redimensionamento em tempo de execução), exporte o mesmo para a extensão ICO, pode ser usado o photoshop, ou <a href="http://www.irfanview.com/" onclick="javascript:TrackClick('http%3A%2F%2Fwww.irfanview.com%2F','')">Irfanview</a>, ou seu programa de  criação de ícones favorito. Faça upload para seu servidor (de preferência na raiz) e depois disso adicione as seguintes tags dentro do &lt;head&gt; de seu html:</p>
<pre>
     &lt;link rel="shortcut icon" href="http://seudominio.com/favicon.ico"&gt;     &lt;<span class="start-tag">link</span><span class="attribute-name"> rel</span>=<span class="attribute-value">"icon" </span><span class="attribute-name">href</span>=<span class="attribute-value">"</span>http://seudominio.com/favicon.ico<span class="attribute-value">"</span>&gt;</pre>
<p>Feito isso, seu favicon já estará funcionando legal nos navegadores desktop compatíveis. Mas agora vem a parte divertida da história, colocarmos nosso favicon pra funcionar no iphone. Basta criar uma imagem preferencialmente PNG com nosso icone mas com tamanho de 57&#215;57px, fazer upload da mesma e adicionar a seguinte tag dentro de nossa head:</p>
<pre>
    &lt;link rel="apple-touch-icon" href="meuicone.png"&gt;</pre>
<p>Depois disso é só você testar e confirmar o resultado.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;title=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;title=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;title=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;t=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;title=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;title=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;title=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;title=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Buenas%2C%20post%20rapinho%2C%20j%C3%A1%20que%20n%C3%A3o%20disponho%20de%20tanto%20tempo%20assim%2C%20estou%20aqui%20s%C3%B3%20para%20falar%20de%20duas%20coisas%20r%C3%A1pidas%2C%20a%20primeira%20%C3%A9%20a%20promo%C3%A7%C3%A3o%20Voc%C3%AA%20na%20drimio%2C%20onde%20voc%C3%AA%20pode%20ganhar%20um%20iPod%20Shuffle%20de%202GB%2C%20particularmente%20eu%20queria%20participar%2C%20mas%20" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;title=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;story_title=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;name=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;submitHeadline=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21&amp;submitSummary=Buenas%2C%20post%20rapinho%2C%20j%C3%A1%20que%20n%C3%A3o%20disponho%20de%20tanto%20tempo%20assim%2C%20estou%20aqui%20s%C3%B3%20para%20falar%20de%20duas%20coisas%20r%C3%A1pidas%2C%20a%20primeira%20%C3%A9%20a%20promo%C3%A7%C3%A3o%20Voc%C3%AA%20na%20drimio%2C%20onde%20voc%C3%AA%20pode%20ganhar%20um%20iPod%20Shuffle%20de%202GB%2C%20particularmente%20eu%20queria%20participar%2C%20mas%20&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fcrie-o-favicon-para-seu-site-incluindo-iphone-tambem%2F&amp;=Crie%20o%20favicon%20para%20seu%20site...%20incluindo%20iPhone%20tamb%C3%A9m%21" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/crie-o-favicon-para-seu-site-incluindo-iphone-tambem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizando o Zend_Db_Select</title>
		<link>http://www.blogdoxorna.com.br/utilizando-o-zend_db_select/</link>
		<comments>http://www.blogdoxorna.com.br/utilizando-o-zend_db_select/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 18:20:11 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com/utilizando-o-zend_db_select/</guid>
		<description><![CDATA[O uso da classe Zend_Db_Select é muito simples, o intuito dela é proporcionar ao desenvolvedor a possibilidade de fazer consultas complexas sem a necessidade de escrever código SQL, e sim utilizando um objeto, abaixo estarei mostrando alguns mini-exemplos.
Consulta simples, como um SELECT * FROM `users`

$select = new Zend_Db_Select();

$select-&#62;from(?users?);

$rs = $select-&#62;query();

$data = $rs-&#62;fetchAll();
Consulta com inserção de [...]]]></description>
			<content:encoded><![CDATA[<p>O uso da classe Zend_Db_Select é muito simples, o intuito dela é proporcionar ao desenvolvedor a possibilidade de fazer consultas complexas sem a necessidade de escrever código SQL, e sim utilizando um objeto, abaixo estarei mostrando alguns mini-exemplos.</p>
<p><strong>Consulta simples, como um SELECT * FROM `users`</strong></p>
<pre>
$select = new Zend_Db_Select();

$select-&gt;from(?users?);

$rs = $select-&gt;query();

$data = $rs-&gt;fetchAll();</pre>
<p><strong>Consulta com inserção de clausula WHERE, como um SELECT * FROM `users` WHERE `id` &gt; 10:</strong></p>
<pre>
$select = new Zend_Db_Select();

$select-&gt;from(?users?);

$select-&gt;where(?id &gt; ??, 10);

$rs = $select-&gt;query();

$data = $rs-&gt;fetchAll();</pre>
<p><strong>·	Consulta com seleção de campos e cláusula WHERE, como um SELECT id, name FROM `users` WHERE id &gt; 10: </strong></p>
<pre>
$select = new Zend_Db_Select();

$select-&gt;from(?users?);

$select-&gt;columns(?id, name?);

$select-&gt;where(?id &gt; ??, 10);

$rs = $select-&gt;query();

$data = $rs-&gt;fetchAll();</pre>
<p><strong>·	Consulta com seleção de campos e cláusula WHERE e INNER JOIN, como um SELECT `users`.`id`, `users`.`name`, `pictures`.`address` FROM `users` INNER JOIN `pictures` ON `pictures`.`user_id` = `users`.`id` WHERE id &gt; 10; </strong></p>
<pre>
$select = new Zend_Db_Select();

$select-&gt;from(?users?);

$select-&gt;columns(?users.id, users.name, pictures.address?);

$select-&gt;joinInner(?picures?, ?picures.user_id = user.id?);

$select-&gt;where(?id &gt; ??, 10);

$rs = $select-&gt;query();

$data = $rs-&gt;fetchAll();</pre>
<p>Além dos métodos utilizados acima a api da classe na qual o Drimio_Db_Select extende em <a href="http://framework.zend.com/apidoc/core/Zend_Db/Select/Zend_Db_Select.html" onclick="javascript:TrackClick('http%3A%2F%2Fframework.zend.com%2Fapidoc%2Fcore%2FZend_Db%2FSelect%2FZend_Db_Select.html','')" target="_blank">http://framework.zend.com/apidoc/core/Zend_Db/Select/Zend_Db_Select.html</a></p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;title=Utilizando%20o%20Zend_Db_Select" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;title=Utilizando%20o%20Zend_Db_Select" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;title=Utilizando%20o%20Zend_Db_Select" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;t=Utilizando%20o%20Zend_Db_Select" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;title=Utilizando%20o%20Zend_Db_Select" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;title=Utilizando%20o%20Zend_Db_Select" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Utilizando%20o%20Zend_Db_Select&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;title=Utilizando%20o%20Zend_Db_Select" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;title=Utilizando%20o%20Zend_Db_Select&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=O%20uso%20da%20classe%20Zend_Db_Select%20%C3%A9%20muito%20simples%2C%20o%20intuito%20dela%20%C3%A9%20proporcionar%20ao%20desenvolvedor%20a%20possibilidade%20de%20fazer%20consultas%20complexas%20sem%20a%20necessidade%20de%20escrever%20c%C3%B3digo%20SQL%2C%20e%20sim%20utilizando%20um%20objeto%2C%20abaixo%20estarei%20mostrando%20alguns%20mini-" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;title=Utilizando%20o%20Zend_Db_Select" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Utilizando%20o%20Zend_Db_Select&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;story_title=Utilizando%20o%20Zend_Db_Select" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;name=Utilizando%20o%20Zend_Db_Select" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;submitHeadline=Utilizando%20o%20Zend_Db_Select&amp;submitSummary=O%20uso%20da%20classe%20Zend_Db_Select%20%C3%A9%20muito%20simples%2C%20o%20intuito%20dela%20%C3%A9%20proporcionar%20ao%20desenvolvedor%20a%20possibilidade%20de%20fazer%20consultas%20complexas%20sem%20a%20necessidade%20de%20escrever%20c%C3%B3digo%20SQL%2C%20e%20sim%20utilizando%20um%20objeto%2C%20abaixo%20estarei%20mostrando%20alguns%20mini-&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-zend_db_select%2F&amp;=Utilizando%20o%20Zend_Db_Select" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/utilizando-o-zend_db_select/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Profiling de consultas utilizando Firebug, FirePHP e Zend_Db_Profiler_Firebug</title>
		<link>http://www.blogdoxorna.com.br/profiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug/</link>
		<comments>http://www.blogdoxorna.com.br/profiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 17:38:44 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Padrões]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com/profiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug/</guid>
		<description><![CDATA[Um recurso muito interessante do navegador Firefox são suas extensões,  e para os desenvolvedores web uma das extensões mais importantes é o Firebug, com ele você consegue fazer o profiling da camada de visão da sua aplicação, podendo por exemplo monitorar todas as requisições Ajax, seus cabeçalhos e dados, tempo de carregamento de cada [...]]]></description>
			<content:encoded><![CDATA[<p>Um recurso muito interessante do navegador Firefox são suas extensões,  e para os desenvolvedores web uma das extensões mais importantes é o <a href="https://addons.mozilla.org/en-US/firefox/addon/1843" title="Firebug Plugin" onclick="javascript:TrackClick('Firebug+Plugin','https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F1843')" onclick="javascript:TrackClick('Firebug+Plugin','https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F1843')" target="_blank">Firebug</a>, com ele você consegue fazer o profiling da camada de visão da sua aplicação, podendo por exemplo monitorar todas as requisições Ajax, seus cabeçalhos e dados, tempo de carregamento de cada arquivo da interface e o tamanho de cada um. Mas ele não para por aí, utilizando o <a href="https://addons.mozilla.org/en-US/firefox/addon/6149" title="Firephp Plugin" onclick="javascript:TrackClick('Firephp+Plugin','https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F6149')" onclick="javascript:TrackClick('Firephp+Plugin','https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F6149')" target="_blank">FirePHP</a> que é uma extensão do Firefox mas ele trabalha sobre Firebug, você consegue fazer profiling das camadas que são processadas no servidor, como a camada de modelo, que é o caso utilizado neste post. Abaixo estarei mostrando de maneira simples e objetiva como utilizar este recurso, assumindo que você já tenha instalado o Firefox, o <a href="https://addons.mozilla.org/en-US/firefox/addon/1843" title="Firebug Plugin" onclick="javascript:TrackClick('Firebug+Plugin','https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F1843')" onclick="javascript:TrackClick('Firebug+Plugin','https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F1843')" target="_blank">Firebug</a> e o <a href="https://addons.mozilla.org/en-US/firefox/addon/6149" title="Firephp Plugin" onclick="javascript:TrackClick('Firephp+Plugin','https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F6149')" onclick="javascript:TrackClick('Firephp+Plugin','https%3A%2F%2Faddons.mozilla.org%2Fen-US%2Ffirefox%2Faddon%2F6149')" target="_blank">FirePHP</a>, então vamos lá:</p>
<p>No seu arquivo de bootstrap, após criar a sua conexão com o banco de dados, você deverá criar um profile e defini-lo como o profiler daquelas conexão:</p>
<pre>
$connection = Zend_Db::factory($adapter, $config);$profiler = new Zend_Db_Profiler_Firebug(&#39;All DB Queries&#39;);

$profiler-&gt;setEnabled(true);

$connection-&gt;setProfiler($profiler);</pre>
<p>Após isso, basta ter o firebug e o firephp ativados para conferir o profiling de suas consultas no console do firebug.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;title=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;title=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;title=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;t=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;title=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;title=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;title=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;title=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Um%20recurso%20muito%20interessante%20do%20navegador%20Firefox%20s%C3%A3o%20suas%20extens%C3%B5es%2C%20%20e%20para%20os%20desenvolvedores%20web%20uma%20das%20extens%C3%B5es%20mais%20importantes%20%C3%A9%20o%20Firebug%2C%20com%20ele%20voc%C3%AA%20consegue%20fazer%20o%20profiling%20da%20camada%20de%20vis%C3%A3o%20da%20sua%20aplica%C3%A7%C3%A3o%2C%20podendo%20por%20exe" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;title=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;story_title=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;name=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;submitHeadline=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug&amp;submitSummary=Um%20recurso%20muito%20interessante%20do%20navegador%20Firefox%20s%C3%A3o%20suas%20extens%C3%B5es%2C%20%20e%20para%20os%20desenvolvedores%20web%20uma%20das%20extens%C3%B5es%20mais%20importantes%20%C3%A9%20o%20Firebug%2C%20com%20ele%20voc%C3%AA%20consegue%20fazer%20o%20profiling%20da%20camada%20de%20vis%C3%A3o%20da%20sua%20aplica%C3%A7%C3%A3o%2C%20podendo%20por%20exe&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fprofiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug%2F&amp;=Profiling%20de%20consultas%20utilizando%20Firebug%2C%20FirePHP%20e%20Zend_Db_Profiler_Firebug" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/profiling-de-consultas-utilizando-firebug-firephp-e-zend_db_profiler_firebug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizando o cache de plugins do Zend Framework</title>
		<link>http://www.blogdoxorna.com.br/utilizando-o-cache-de-plugins-do-zend-framework/</link>
		<comments>http://www.blogdoxorna.com.br/utilizando-o-cache-de-plugins-do-zend-framework/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 16:07:16 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[alta performance]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com/utilizando-o-cache-de-plugins-do-zend-framework/</guid>
		<description><![CDATA[Buenas pessoal, hoje a idéia é falar sobre o cache de plugins do Zend Framework, muito útil para acelerar um pouco o tempo de processamento e resposta por parte do servidor, é muito simples como o resto do framework, você só precisa criar um diretório para armazenar o cache, e acrescentar algumas linhas ao seu [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas pessoal, hoje a idéia é falar sobre o cache de plugins do Zend Framework, muito útil para acelerar um pouco o tempo de processamento e resposta por parte do servidor, é muito simples como o resto do framework, você só precisa criar um diretório para armazenar o cache, e acrescentar algumas linhas ao seu bootstrap.</p>
<p>Crie um diretório com um nome qualquer (ao alcance do bootstrap), eu chamei ele de cache, e insira o seguinte código ao seu bootstrap:</p>
<pre>
$classFileIncCache = {caminho da pasta cache} . &#39;pluginLoaderCache.php&#39;;
if( file_exists($classFileIncCache) ){
	include_once $classFileIncCache;
}
Zend_Loader_PluginLoader::setIncludeFileCache($classFileIncCache);</pre>
<p>Após isso o Zend mesmo irá tomar conta de criar o arquivo pluginLoaderCache.php para você e inserir o conteúdo. Não se esqueça de dar permissão de escrita na pasta cache.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;title=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;title=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;title=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;t=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;title=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;title=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;title=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;title=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Buenas%20pessoal%2C%20hoje%20a%20id%C3%A9ia%20%C3%A9%20falar%20sobre%20o%20cache%20de%20plugins%20do%20Zend%20Framework%2C%20muito%20%C3%BAtil%20para%20acelerar%20um%20pouco%20o%20tempo%20de%20processamento%20e%20resposta%20por%20parte%20do%20servidor%2C%20%C3%A9%20muito%20simples%20como%20o%20resto%20do%20framework%2C%20voc%C3%AA%20s%C3%B3%20precisa%20criar%20um%20di" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;title=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;story_title=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;name=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;submitHeadline=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework&amp;submitSummary=Buenas%20pessoal%2C%20hoje%20a%20id%C3%A9ia%20%C3%A9%20falar%20sobre%20o%20cache%20de%20plugins%20do%20Zend%20Framework%2C%20muito%20%C3%BAtil%20para%20acelerar%20um%20pouco%20o%20tempo%20de%20processamento%20e%20resposta%20por%20parte%20do%20servidor%2C%20%C3%A9%20muito%20simples%20como%20o%20resto%20do%20framework%2C%20voc%C3%AA%20s%C3%B3%20precisa%20criar%20um%20di&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Futilizando-o-cache-de-plugins-do-zend-framework%2F&amp;=Utilizando%20o%20cache%20de%20plugins%20do%20Zend%20Framework" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/utilizando-o-cache-de-plugins-do-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Guardar Sessões em Cache com Zend Framework e Memcached</title>
		<link>http://www.blogdoxorna.com.br/guardar-sessoes-em-cache-com-zend-framework-e-memcached/</link>
		<comments>http://www.blogdoxorna.com.br/guardar-sessoes-em-cache-com-zend-framework-e-memcached/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 16:31:45 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[alta performance]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com/guardar-sessoes-em-cache-com-zend-framework-e-memcached/</guid>
		<description><![CDATA[O post de hoje se dedica a aumentar a performance no armazenamento e recuperação de sessões, mais um dos estudos realizados pela nossa equipe e que foi implantado no nosso projeto. Ele consiste em pega a sessão do usuário e armazenar em um servidor de cache, no nosso caso o memcached.
A implementação é muito simples, [...]]]></description>
			<content:encoded><![CDATA[<p>O post de hoje se dedica a aumentar a performance no armazenamento e recuperação de sessões, mais um dos estudos realizados pela nossa equipe e que foi implantado no nosso projeto. Ele consiste em pega a sessão do usuário e armazenar em um servidor de cache, no nosso caso o memcached.</p>
<p>A implementação é muito simples, você terá apenas que criar uma classe e mudar o modo que cria sua sessão, o resto permanece igual, pois é Zend_Session se encarrega de achar a sessão dentro do cache. Abaixo vai o código da nova classe que deve implementar a interface  <code>Zend_Session_SaveHandler_Interface.</code></p>
<pre>
class Xorna_SessionHandler implements Zend_Session_SaveHandler_Interface{

private $maxlifetime = 3600;

public $cache = &#39;&#39;;	public function __construct($cacheHandler) {

$this-&gt;cache = $cacheHandler;

}

public function open($save_path, $name) {

return true;

}

public function close() {

return true;

}

public function read($id) {

if(!($data = $this-&gt;cache-&gt;load($id))) {

return &#39;&#39;;

}

else {

return $data;

}

}

public function write($id, $sessionData) {

$this-&gt;cache-&gt;save($sessionData, $id, array(), $this-&gt;maxlifetime);

return true;

}

public function destroy($id) {

$this-&gt;cache-&gt;remove($id);

return true;

}

public function gc($notusedformemcache) {

return true;

}

}

?&gt;</pre>
<p>Bom, feito isso agora só precisamos instanciar isso, e criar a sessão:</p>
<pre>
Zend_Loader::loadClass(&#39;Xorna_SessionHandler&#39;);

$cache = Zend_Cache::factory(&#39;Core&#39;, &#39;Memcached&#39;, $frontendOptions, $backendOptions);

Zend_Session::setSaveHandler(new Xorna_SessionHandler($_cache));

Zend_Session::start();
</pre>
<p>Daqui em diante nada muda.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;title=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;title=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;title=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;t=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;title=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;title=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;title=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;title=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=O%20post%20de%20hoje%20se%20dedica%20a%20aumentar%20a%20performance%20no%20armazenamento%20e%20recupera%C3%A7%C3%A3o%20de%20sess%C3%B5es%2C%20mais%20um%20dos%20estudos%20realizados%20pela%20nossa%20equipe%20e%20que%20foi%20implantado%20no%20nosso%20projeto.%20Ele%20consiste%20em%20pega%20a%20sess%C3%A3o%20do%20usu%C3%A1rio%20e%20armazenar%20em%20um%20servi" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;title=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;story_title=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;name=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;submitHeadline=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached&amp;submitSummary=O%20post%20de%20hoje%20se%20dedica%20a%20aumentar%20a%20performance%20no%20armazenamento%20e%20recupera%C3%A7%C3%A3o%20de%20sess%C3%B5es%2C%20mais%20um%20dos%20estudos%20realizados%20pela%20nossa%20equipe%20e%20que%20foi%20implantado%20no%20nosso%20projeto.%20Ele%20consiste%20em%20pega%20a%20sess%C3%A3o%20do%20usu%C3%A1rio%20e%20armazenar%20em%20um%20servi&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fguardar-sessoes-em-cache-com-zend-framework-e-memcached%2F&amp;=Guardar%20Sess%C3%B5es%20em%20Cache%20com%20Zend%20Framework%20e%20Memcached" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/guardar-sessoes-em-cache-com-zend-framework-e-memcached/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MemCache no Windows e integração com o Wamp Server</title>
		<link>http://www.blogdoxorna.com.br/memcache-no-windows-e-integracao-com-o-wamp-server/</link>
		<comments>http://www.blogdoxorna.com.br/memcache-no-windows-e-integracao-com-o-wamp-server/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 17:55:10 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[alta performance]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com/memcache-no-windows-e-integracao-com-o-wamp-server/</guid>
		<description><![CDATA[Mais um post sobre uso do WAMP (Windows, Apache, Mysql e PHP) como ambiente de desenvolvimento, dessa vez vou falar da instalação do memcache no windows, como integrá-lo ao ambiente e como ativá-lo. O trabalho envolvido nisso é muito simples, é só instalação e configuração.
Primeiramente vamos falar sobre o memcache, ele é um daemon, ou [...]]]></description>
			<content:encoded><![CDATA[<p>Mais um post sobre uso do WAMP (Windows, Apache, Mysql e PHP) como ambiente de desenvolvimento, dessa vez vou falar da instalação do memcache no windows, como integrá-lo ao ambiente e como ativá-lo. O trabalho envolvido nisso é muito simples, é só instalação e configuração.</p>
<p>Primeiramente vamos falar sobre o memcache, ele é um daemon, ou seja, um serviço que roda stand-alone na máquina, que utiliza uma ou mais portas, e que pode ser inicializado, parado e reinicializado conforme necessidades. Ao contrário da sessão do PHP, que é visível somente dentro do escopo de acesso do usuário (claro que existem maneira de compartilhar sessões), o memcache é visível dentro de toda aplicação, ou seja, se tivermos 100 usuários on-line, eles compartilharão o mesmo cache. O motivo pelo qual cheguei ao uso do memcache é a necessidade diária de ganhar performance mantendo a qualidade do sistema mantendo todas as suas funcionalidades, mas vamos parar por aqui e vamos colocar a mão na massa.</p>
<p><strong>Instalação</strong></p>
<ul>
<li>Baixe os binários do memcache no site <a href="http://code.jellycan.com/memcached/" onclick="javascript:TrackClick('http%3A%2F%2Fcode.jellycan.com%2Fmemcached%2F','memchache+download+link')" title="memchache download link" target="_blank">http://code.jellycan.com/memcached/</a>  (pegue os binários win32).</li>
<li>Agora vamos à instalção propriamente dita:</li>
<li>Descompacte o conteúdo do arquivo onde desejar (eu usei c:memcache), você deverá ter os seguintes arquivos dentro da pasta:</li>
<li>memcache.exe</li>
<li>msvcr1.dll</li>
<li>Abra o terminal do windows =P</li>
<li>Instale o memcache com o seguinte comando: c:memcachememcache.exe -d install</li>
<li>Inicialize o serviço com o seguinte comando: c:memcachememcache.exe -d start</li>
</ul>
<p>Agora com o memcache instalado e iniciado, vamos a configuração do WAMP Server, antes de mais nada é preciso fazer o download da dll do memcache para windows neste endereço: <a href="http://pecl4win.php.net/ext.php/php_memcache.dll" onclick="javascript:TrackClick('http%3A%2F%2Fpecl4win.php.net%2Fext.php%2Fphp_memcache.dll','memcache.dll+download')" title="memcache.dll download" target="_blank">http://pecl4win.php.net/ext.php/php_memcache.dll</a>. Feito isso vai la em c:wampinphpphp5.2.5ext e cole essa dll dentro, feche o WAMP, inicie-o novamente, clique com o botão esquerdo no icone do wamp &gt; php &gt; php extensions &gt; habilite a extensão memcache. Pronto, agora é só fazer um teste com  o script postado abaixo e está tudo certo.</p>
<pre>
// Exemplo extraído do site www.php.net

$memcache = new Memcache;

$memcache-&gt;connect("localhost",11211);echo "Server&#39;s version: " . $memcache-&gt;getVersion() . "n";

$tmp_object = new stdClass;

$tmp_object-&gt;str_attr = "test";

$tmp_object-&gt;int_attr = 123;

$memcache-&gt;set("key",$tmp_object,false,10);

echo "Store data in the cache (data will expire in 10 seconds)n";

echo "Data from the cache:n";

var_dump($memcache-&gt;get("key"));

?&gt;</pre>
<p>Após isso, está funcionando, mas temos um porém nessa história, por padrão o memcache utiliza o tamanho máximo de cache de 64mb, então caso queira aumentar essa capacidade, abra o regedit, vá em HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesmemcached Server, encontre o item ImagePath e mude seu valor para: <em>?C:memcachedmemcached.exe? -d runservice -m 512</em>. Pronto!</p>
<p>Bom, feito tudo isso espero ter unificado em português o que muitos sites em ingês dispersam.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;title=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;title=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;title=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;t=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;title=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;title=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;title=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;title=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Mais%20um%20post%20sobre%20uso%20do%20WAMP%20%28Windows%2C%20Apache%2C%20Mysql%20e%20PHP%29%20como%20ambiente%20de%20desenvolvimento%2C%20dessa%20vez%20vou%20falar%20da%20instala%C3%A7%C3%A3o%20do%20memcache%20no%20windows%2C%20como%20integr%C3%A1-lo%20ao%20ambiente%20e%20como%20ativ%C3%A1-lo.%20O%20trabalho%20envolvido%20nisso%20%C3%A9%20muito%20simples%2C%20%C3%A9" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;title=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;story_title=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;name=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;submitHeadline=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server&amp;submitSummary=Mais%20um%20post%20sobre%20uso%20do%20WAMP%20%28Windows%2C%20Apache%2C%20Mysql%20e%20PHP%29%20como%20ambiente%20de%20desenvolvimento%2C%20dessa%20vez%20vou%20falar%20da%20instala%C3%A7%C3%A3o%20do%20memcache%20no%20windows%2C%20como%20integr%C3%A1-lo%20ao%20ambiente%20e%20como%20ativ%C3%A1-lo.%20O%20trabalho%20envolvido%20nisso%20%C3%A9%20muito%20simples%2C%20%C3%A9&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmemcache-no-windows-e-integracao-com-o-wamp-server%2F&amp;=MemCache%20no%20Windows%20e%20integra%C3%A7%C3%A3o%20com%20o%20Wamp%20Server" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/memcache-no-windows-e-integracao-com-o-wamp-server/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Configuração Eclipse + Subclipse + svn+ssh no Windows</title>
		<link>http://www.blogdoxorna.com.br/configuracao-eclipse-subclipse-svnssh-no-windows/</link>
		<comments>http://www.blogdoxorna.com.br/configuracao-eclipse-subclipse-svnssh-no-windows/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 17:43:36 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com/configuracao-eclipse-subclipse-svnssh-no-windows/</guid>
		<description><![CDATA[Buena pessoal&#8230; tempão sem postar novamente rsrsrs&#8230;. mas agora postando de um lugar diferente da ultima postagem&#8230; pois é&#8230; estou eu, xorna, morando em Joinville/SC, ao nivel do mar, com umidade sempre acima dos 75%, e com chuvas que nessa época do ano podem ser consideradas demasiadas, tenho um novo ambiente para me inspirar, novos [...]]]></description>
			<content:encoded><![CDATA[<p>Buena pessoal&#8230; tempão sem postar novamente rsrsrs&#8230;. mas agora postando de um lugar diferente da ultima postagem&#8230; pois é&#8230; estou eu, xorna, morando em Joinville/SC, ao nivel do mar, com umidade sempre acima dos 75%, e com chuvas que nessa época do ano podem ser consideradas demasiadas, tenho um novo ambiente para me inspirar, novos desafios e muita motivação.</p>
<p>O que venho a postar hoje pode até parecer heresia, mas é verdade, antes de ir ao conteúdo, vamos a uma perguntinha: Quem não depende de Windows como ambiente para desenvolver Sites/Portais/Sistemas que irão ser utilizados em 80%+ por usuários Windows? Sem maiores comentários.</p>
<p>Então, na busca por um ambiente Windows o mais parecido com meu atual ambiente de desenvolvimento Linux, tenho aqui uma série de coisas para compartilhar com vocês, a primeira delas é como configurar o eclipse + subclipse para utilizar svn+ssh sem vender sua alma ou fazer qualquer ritual.</p>
<p>É muito simples, de posse  do eclipse ja com o plugin <a href="http://subclipse.tigris.org/install.html" onclick="javascript:TrackClick('http%3A%2F%2Fsubclipse.tigris.org%2Finstall.html','')" target="_blank">subclipse</a> baixe o aplicativo <a href="http://tortoisesvn.net/downloads" onclick="javascript:TrackClick('http%3A%2F%2Ftortoisesvn.net%2Fdownloads','')" target="_blank">Tortoise SVN</a>, instale o mesmo da maneira que achar conveniente. Após isso vamos a simples configuração do mesmo. Abra para edição o seguinte arquivo:</p>
<p><code>c:Documents and Settings{seu usuario}Dados de AplicativosSubversionconfig</code></p>
<p>Nele você vai precisar tirar o comentário de algumas linhas e adicionar valores, vamos primeiro tirar os comentarios das seguintes linhas e modificar os valores, deixando essas linhas assim (após edição manter arquivo aberto):</p>
<p><code><br />
<strong>[auth]</strong></p>
<p># Gravar a senha após autenticar, evita que você repita a senha 20 vezes em um checkout, update ou commit<br />
store-passwords = yes<br />
# Armazena sua identidade para próximas ações<br />
store-auth-creds = yes<br />
</code></p>
<p>Feito isso, nosso svn+ssh não irá conectar de modo algum, é nesse momento que vemos a importancia de ter instalado na máquina o Tortoise SVN, além de você agora contar com um seu Windows Explorer como um navegador com suporte a SVN, você terá coisas úteis como tortoiseplink.exe, que será utilizado aqui para fazer o tunelamento da conexão, já que o nosso pobre Windows desconhece isso.</p>
<p>Precisamos então dizer ao Subversion que quem vai fazer o &#8220;tunnel&#8221; será o toroiseplink.exe, lá na sessão [tunnels] você terá uma opção para remover o comentário e utilizar o endereço completo do executável, no meu caso ficou assim:</p>
<p><code><br />
<strong>[tunnels]</strong><br />
ssh = c:/Arquivos de programas/TortoiseSVN/bin/TortoisePlink.exe<br />
</code></p>
<p>É assim mesmo, com essa /, feito isso o recomendando no minimo é reiniciar o eclipse ou até mesmo o pc, caso essa solução não funcione, tente com variaveis de ambiente, cria uma chamada SVN_SSH e coloque o endereço do tortoiseplink.exe lá, e dessa vez utilizando \. Agora sim, pode dar um checkout e notar que ta tudo funcionando.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;title=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows" title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;title=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows" title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;title=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows" title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;t=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows" title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;title=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows" title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;title=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows" title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;title=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows" title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;title=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Buena%20pessoal...%20temp%C3%A3o%20sem%20postar%20novamente%20rsrsrs....%20mas%20agora%20postando%20de%20um%20lugar%20diferente%20da%20ultima%20postagem...%20pois%20%C3%A9...%20estou%20eu%2C%20xorna%2C%20morando%20em%20Joinville%2FSC%2C%20ao%20nivel%20do%20mar%2C%20com%20umidade%20sempre%20acima%20dos%2075%25%2C%20e%20com%20chuvas%20que%20nessa%20%C3%A9p" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;title=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows" title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;story_title=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows" title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;name=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows" title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;submitHeadline=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows&amp;submitSummary=Buena%20pessoal...%20temp%C3%A3o%20sem%20postar%20novamente%20rsrsrs....%20mas%20agora%20postando%20de%20um%20lugar%20diferente%20da%20ultima%20postagem...%20pois%20%C3%A9...%20estou%20eu%2C%20xorna%2C%20morando%20em%20Joinville%2FSC%2C%20ao%20nivel%20do%20mar%2C%20com%20umidade%20sempre%20acima%20dos%2075%25%2C%20e%20com%20chuvas%20que%20nessa%20%C3%A9p&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fconfiguracao-eclipse-subclipse-svnssh-no-windows%2F&amp;=Configura%C3%A7%C3%A3o%20Eclipse%20%2B%20Subclipse%20%2B%20svn%2Bssh%20no%20Windows" title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/configuracao-eclipse-subclipse-svnssh-no-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend ou não Zend ? eis a questão&#8230;</title>
		<link>http://www.blogdoxorna.com.br/zend-ou-nao-zend-eis-a-questao/</link>
		<comments>http://www.blogdoxorna.com.br/zend-ou-nao-zend-eis-a-questao/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 19:36:53 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com/zend-ou-nao-zend-eis-a-questao/</guid>
		<description><![CDATA[Depois de um mal bom tempo sem postar nada, retornoao meu blog com muita informação afim de compartilhar-las, o motivo no qual me afastou do blog além da grande demanda de trabalho foi o fato de eu ter tirado o tempo que usava para escrever estudando novas tecnologias, velhas tecnologias também, ferramentas, frameworks e tudo [...]]]></description>
			<content:encoded><![CDATA[<p>Depois de um <strike>mal</strike> bom tempo sem postar nada, retornoao meu blog com muita informação afim de compartilhar-las, o motivo no qual me afastou do blog além da grande demanda de trabalho foi o fato de eu ter tirado o tempo que usava para escrever estudando novas tecnologias, velhas tecnologias também, ferramentas, frameworks e tudo que está no escopo do desenvolvimento de aplicações.</p>
<p>Meus estudos em geral giraram em torno de padrões, frameworks e ferramentas para agilizar o desenvolvimento e a criação de um ambiente &#8220;saudável&#8221; para desenvolvimento de grandes aplicações escaláveis e de fácil construção e manutenção. Ao final deste estudo com todos os méritos e baixa vantagem o vencedor foi o Zend Framework, anteriormente citado e futuramente será muito mais citado aqui neste blog.</p>
<p>Mas o Zend Framework por si só não atende a todas as necessidades de quem quer um ambiente otimizado e altamente escalável, o por que explicarei aqui para você leitor. Em um primeiro momento estarei citando algumas deficiências por nós encontradas no Zend Framework, e após citá-las falarei de como é simples contornar essas deficiências.</p>
<p><strong>Pecados do Zend Framework:</strong></p>
<p>1- Apesar de ser um legítimo MVC, o Zend Framework tem um sistema de templates que não pode ser comparado a por exemplo Smarty Template Engine. Para alguns isso pode parecer estranho, mas para quem abomina o fato do código PHP ser inserido dentro do HTML isso faz sentido.</p>
<p>2 &#8211; O framework tenta, mas não consegue convencer ninguem que faz  Mapeamento Objeto-Relacional, não eficientemente, quem sabe em versões futuras do framework a Zend melhore isso, mas para quem precisa trabalhar com muitas tabelas, com muitas colunas e por consequencia um grande volume de dados, mas não precisa que todas as colunas sejam mapeadas por exemplo.</p>
<p>3 &#8211; Utilitario para geração de documentos PDF deixa a desejar. Por exemplo, precisávamos inserir uma tabela html dentro do PDF. Não deu, ele tem ótimos recursos para criar documentos, abrir e alterar, onde você trata o pdf como um objeto, altera o que quiser, muito bom, mas para relatórios fica complexo gerar tabelas na maneira que ele propõe.</p>
<p><strong> Redenção do Zend Framework:</strong></p>
<p>Você pode ter pensado &#8220;Ah, mas se é assim, por que vou usar o Zend Framework????&#8221;.  É simples, o Zend Framework foi desenvolvido de tal maneira que seja totalmente desacoplados todos seu módulos, mas totalmente mesmo, juntando isso a sua alta coesão, resultado??? Você pode chegar e acoplar qualquer ferramenta conhecida e criar uma implementação dentro do padrão proposto pelo Zend (é claro, padrão é padrão) e ser literalmente ser FELIZ!</p>
<p>Nos próximos posts mostrarei aqui como fazer acoplamento de componentes ao Zend Framework, componentes como Smarty Template Engine, Doctrine ORM, TCPDF e muitos outros além de poder criar seus componentes reutilizáveis para qualquer aplicação.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Compartilhe e socialize:</strong>
</div>
<ul>
	<li><a rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;title=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o..." title="Digg"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://sphinn.com/submit.php?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;title=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o..." title="Sphinn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/sphinn.gif" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;title=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o..." title="del.icio.us"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;t=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o..." title="Facebook"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;title=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o..." title="Mixx"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;title=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o..." title="Google"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/googlebookmark.png" title="Google" alt="Google" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="mailto:?subject=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o...&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F" title="E-mail this story to a friend!"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/email_link.png" title="E-mail this story to a friend!" alt="E-mail this story to a friend!" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://linkarena.com/bookmarks/addlink/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;title=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o..." title="LinkArena"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkarena.gif" title="LinkArena" alt="LinkArena" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;title=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o...&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Depois%20de%20um%20mal%20bom%20tempo%20sem%20postar%20nada%2C%20retornoao%20meu%20blog%20com%20muita%20informa%C3%A7%C3%A3o%20afim%20de%20compartilhar-las%2C%20o%20motivo%20no%20qual%20me%20afastou%20do%20blog%20al%C3%A9m%20da%20grande%20demanda%20de%20trabalho%20foi%20o%20fato%20de%20eu%20ter%20tirado%20o%20tempo%20que%20usava%20para%20escrever%20estuda" title="LinkedIn"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;title=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o..." title="Live"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/live.png" title="Live" alt="Live" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.netvibes.com/share?title=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o...&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F" title="Netvibes"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://socialogs.com/add_story.php?story_url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;story_title=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o..." title="Socialogs"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/socialogs.gif" title="Socialogs" alt="Socialogs" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F" title="Technorati"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://www.thisnext.com/pick/new/submit/sociable/?url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;name=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o..." title="ThisNext"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/thisnext.png" title="ThisNext" alt="ThisNext" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;submitHeadline=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o...&amp;submitSummary=Depois%20de%20um%20mal%20bom%20tempo%20sem%20postar%20nada%2C%20retornoao%20meu%20blog%20com%20muita%20informa%C3%A7%C3%A3o%20afim%20de%20compartilhar-las%2C%20o%20motivo%20no%20qual%20me%20afastou%20do%20blog%20al%C3%A9m%20da%20grande%20demanda%20de%20trabalho%20foi%20o%20fato%20de%20eu%20ter%20tirado%20o%20tempo%20que%20usava%20para%20escrever%20estuda&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoobuzz.gif" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow" target="_blank" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-ou-nao-zend-eis-a-questao%2F&amp;=Zend%20ou%20n%C3%A3o%20Zend%20%3F%20eis%20a%20quest%C3%A3o..." title="YahooMyWeb"><img src="http://www.blogdoxorna.com.br/wp-content/plugins/sociable/images/yahoomyweb.png" title="YahooMyWeb" alt="YahooMyWeb" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/zend-ou-nao-zend-eis-a-questao/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
