<?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; PHP</title>
	<atom:link href="http://www.blogdoxorna.com.br/categorias/php/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>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>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>
		<item>
		<title>Zend Framework</title>
		<link>http://www.blogdoxorna.com.br/zend-framework/</link>
		<comments>http://www.blogdoxorna.com.br/zend-framework/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 17:50:34 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com/zend-framework/</guid>
		<description><![CDATA[Tempão sem postar, trabalhando em um projeto grande por aqui, que está quase lançado,  o www.prestigecarhire.in, site com 8 idiomas distintos, todo feito digamos na mão, quando eu digo isso quer dizer que escrevi todo o modelo e controller sem auxilio de um framework, e apenas utilizei smarty para os templates (view). Após quase [...]]]></description>
			<content:encoded><![CDATA[<p>Tempão sem postar, trabalhando em um projeto grande por aqui, que está quase lançado,  o <a href="http://www.prestigecarhire.in" onclick="javascript:TrackClick('http%3A%2F%2Fwww.prestigecarhire.in','')">www.prestigecarhire.in</a>, site com 8 idiomas distintos, todo feito digamos na mão, quando eu digo isso quer dizer que escrevi todo o modelo e controller sem auxilio de um framework, e apenas utilizei smarty para os templates (view). Após quase terminar este projeto, comecei a ler um livro chamado &#8220;Zend Framework Desenvolvendo em PHP 5 orientado a objetos com MVC&#8221; escrito por Flávio Gomes da Silva Lisboa e publicado pela NOVATEC. Após finalizar este estudo digamos inicial, me perguntei, por que não estudei isso antes, confesso que fiquei e ainda estou maravilhado com a facilidade de desenvolver aplicações de grande porte altamente escaláveis e extensamente documentadas utilizando o Framework da Zend.</p>
<p>Para minha sorte, como já tenho alguns projetos aprovados para inicio de desenvolvimento imediato, estou transferindo minha &#8220;carcaça&#8221; de aplicação toda para o modelo da Zend e claro, fazendo o acoplamento do Smarty Template Engine nele, com uma facilidade enorme. Para quem conhece, sabe do que eu estou falando, é claro que por aí encontramos muitos outros frameworks como CodeIgniter, e para quem não gosta de fato da Zend, como muitos xiitas que vemos por aí que não admitem o fato de termos uma Empresa por trás de uma linguagem, de uma IDE e até mesmo de um framework, esse texto é inútil.</p>
<p>Mas para aqueles buscam o respaldo de uma empresa séria e comprometida com resultados (assim como seus clientes é claro) vale a pena, pois assim temos um ambiente em constante evolução. Claro que não ganhei nada por esta propaganda toda, mas acho válido utilizar ferramentas que nos dão maior segurança, pois como no meu caso, desenvolvendo aplicações para grandes empresas de fora do Brasil, é impossível ficar na mão de uma ferramenta que vem &#8220;absolutamente sem garantia alguma&#8221;. Realmente, hoje em dia é essa a realidade, é a realidade de que devemos nos moldar as espectativas e necessidades de um mercado em constante mudanç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%2Fzend-framework%2F&amp;title=Zend%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%2Fzend-framework%2F&amp;title=Zend%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%2Fzend-framework%2F&amp;title=Zend%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%2Fzend-framework%2F&amp;t=Zend%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%2Fzend-framework%2F&amp;title=Zend%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%2Fzend-framework%2F&amp;title=Zend%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=Zend%20Framework&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-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%2Fzend-framework%2F&amp;title=Zend%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%2Fzend-framework%2F&amp;title=Zend%20Framework&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Temp%C3%A3o%20sem%20postar%2C%20trabalhando%20em%20um%20projeto%20grande%20por%20aqui%2C%20que%20est%C3%A1%20quase%20lan%C3%A7ado%2C%20%20o%20www.prestigecarhire.in%2C%20site%20com%208%20idiomas%20distintos%2C%20todo%20feito%20digamos%20na%20m%C3%A3o%2C%20quando%20eu%20digo%20isso%20quer%20dizer%20que%20escrevi%20todo%20o%20modelo%20e%20controller%20sem%20au" 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-framework%2F&amp;title=Zend%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=Zend%20Framework&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fzend-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%2Fzend-framework%2F&amp;story_title=Zend%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%2Fzend-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%2Fzend-framework%2F&amp;name=Zend%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%2Fzend-framework%2F&amp;submitHeadline=Zend%20Framework&amp;submitSummary=Temp%C3%A3o%20sem%20postar%2C%20trabalhando%20em%20um%20projeto%20grande%20por%20aqui%2C%20que%20est%C3%A1%20quase%20lan%C3%A7ado%2C%20%20o%20www.prestigecarhire.in%2C%20site%20com%208%20idiomas%20distintos%2C%20todo%20feito%20digamos%20na%20m%C3%A3o%2C%20quando%20eu%20digo%20isso%20quer%20dizer%20que%20escrevi%20todo%20o%20modelo%20e%20controller%20sem%20au&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-framework%2F&amp;=Zend%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/zend-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tutorial de Configuração para Acesso ao MsSQL Server Via Servidor LAMP</title>
		<link>http://www.blogdoxorna.com.br/tutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp/</link>
		<comments>http://www.blogdoxorna.com.br/tutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 19:03:16 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com/tutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp/</guid>
		<description><![CDATA[Bem, para não perder o embalo por aqui, e a pedidos de alguns colegas meus de trabalho aqui do MEC, estou estou escrevendo um mini tutorial para &#8220;fazer funcionar&#8221; utilizarmos sem problemas as funções mssql do PHP rodando em um servidor LAMP (Leia-se: Linux, Apache, Mysql, PHP (Perl ou Python)) e assim termos um acesso [...]]]></description>
			<content:encoded><![CDATA[<p>Bem, para não perder o embalo por aqui, e a pedidos de alguns colegas meus de trabalho aqui do MEC, estou estou escrevendo um mini tutorial para <strike>&#8220;fazer funcionar&#8221;</strike> utilizarmos sem problemas as funções mssql do PHP rodando em um servidor LAMP (Leia-se: Linux, Apache, Mysql, PHP (Perl ou Python)) e assim termos um acesso ilimitado aos recursos do servidor MsSQL Server.</p>
<p>Para tanto não precisamos de muitas armas na mão, somente algumas extensões, bibliotecas e configurações finas. Pois bem, como alguns sabe, as funções mssql utilizam o ODBC e Freetds como base para suas operações. Então vamos à instalação de pacotes =):</p>
<pre># apt-get install php5-mssql freetds-dev tdsodbc unixodbc unixodbc-bin</pre>
<p>Bem, segundo muitos materiais que encontrei por aí em inglês, garantem que o Freetds roda &#8220;fine&#8221; com o unixodbc, por isso decidi partir para esta última tentativa em busca da &#8220;felicidade&#8221; (por que ser feliz é usar mysql ou pgsql, não mssql). Então depois de instalar o freetds e o unixodbc, descobri que não se trataba apenas de instalar e deu, eu precisaria neste caso configurar algumas coisinhas, mas nada de mais. Primeiramente configurar o freetds, muito simples, só precisamos adicionar o driver padrão para conectarmos e mapear um servidor. Adicione o mapeamento ao final do arquivo /etc/freetds/freetds.conf conforme exemplo abaixo:</p>
<pre>[MeuBanco]
host = meu.banco.dedados
port = 1433
tds version = 8.0
; A versão do tds tem um valor de acordo com o banco de dados a ser conectado, no meu caso precisei utilizar para o MsSql Server 2000 (Driver 8.0)
Abaixo vou listar todas as versões disponiveis para acesso via freetds:</pre>
<pre>* Sybase before System 10, Microsoft SQL Server 6.x:	tds version = 4.2
* Sybase System 10 and above:	tds version =	5.
* Microsoft SQL Server 7.0:	tds version =	7.0
* Microsoft SQL Server 2000:	tds version =	8.0
** Caso haja dúvida, teste com uma versão menor</pre>
<p>Em alguns casos, parando por aqui já está tudo certo, vc tem acesso livre para conexão, mas agora estarei postando um extra, que é para garantir que seu apache/php irá autenticar diretamente no servidor mssql e você poderá acessar esse banco a partir de qualquer software linux, incluindo o OpenOffice Base. Então vamos lá para a configuração do <strong>UNIXODBC. </strong>Primeiramente você deve iniciar a edição do arquivo /etc/odbc.ini. Inserindo as seguintes configurações:</p>
<pre> [meubd]
Description     = FreeTDS
Driver          = FreeTDS
Servername      = meubd
Database        = aaa
UID             = bbb
PWD             = *******
Port            = 1433
E no arquivo /etc/odbcinst.ini adicione essas configurações:</pre>
<pre> [FreeTDS]
Description     = Para conectar com MSSQL e Sysbase
Driver          = /usr/lib/odbc/libtdsodbc.so
Driver64        = /usr/lib
Setup           = /usr/lib/odbc/libtdsS.so
Setup64         = /usr/lib
UsageCount      = 1
CPTimeout       =
CPReuse         =</pre>
<p>Vá até o arquivo /etc/php5/apache2/php.ini e faça a seguinte modificação:</p>
<pre>#descomentem e caso for necessario modifiquem o charset da linha:
msssql.charset = "UTF-8"</pre>
<p>Bom pessoal, acho que é somente isso, qualquer dúvida, problema ou sugestão em relação a esse passo-a-passo podem entrar em contato comigo que buscaremos a melhor solução.</p>
<p>Ps: Não esqueçam de reiniciar o daemon do apache!</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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;title=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP" 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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;title=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP" 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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;title=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP" 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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;t=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP" 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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;title=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP" 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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;title=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP" 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=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;title=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP" 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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;title=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Bem%2C%20para%20n%C3%A3o%20perder%20o%20embalo%20por%20aqui%2C%20e%20a%20pedidos%20de%20alguns%20colegas%20meus%20de%20trabalho%20aqui%20do%20MEC%2C%20estou%20estou%20escrevendo%20um%20mini%20tutorial%20para%20%22fazer%20funcionar%22%20utilizarmos%20sem%20problemas%20as%20fun%C3%A7%C3%B5es%20mssql%20do%20PHP%20rodando%20em%20um%20servidor%20LAMP%20%28Leia-" 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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;title=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP" 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=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;story_title=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP" 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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;name=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP" 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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;submitHeadline=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP&amp;submitSummary=Bem%2C%20para%20n%C3%A3o%20perder%20o%20embalo%20por%20aqui%2C%20e%20a%20pedidos%20de%20alguns%20colegas%20meus%20de%20trabalho%20aqui%20do%20MEC%2C%20estou%20estou%20escrevendo%20um%20mini%20tutorial%20para%20%22fazer%20funcionar%22%20utilizarmos%20sem%20problemas%20as%20fun%C3%A7%C3%B5es%20mssql%20do%20PHP%20rodando%20em%20um%20servidor%20LAMP%20%28Leia-&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%2Ftutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp%2F&amp;=Tutorial%20de%20Configura%C3%A7%C3%A3o%20para%20Acesso%20ao%20MsSQL%20Server%20Via%20Servidor%20LAMP" 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/tutorial-de-configuracao-para-acesso-ao-mssql-server-via-servidor-lamp/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Micro-dica Apache .HTACCESS</title>
		<link>http://www.blogdoxorna.com.br/micro-dica-apache-htaccess/</link>
		<comments>http://www.blogdoxorna.com.br/micro-dica-apache-htaccess/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 14:34:07 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Software Livre]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com/micro-dica-apache-htaccess/</guid>
		<description><![CDATA[Como deve ser comum entre desenvolvedores de sistemas web e sites que utilizam o apache como web server e php como sua linguagem de programação, ou outras como Python (utilizando mod_python), Perl (utilizando mod_perl), ou até mesmo Ruby (mod_ruby), fazer uso de um recurso muito poderoso do Apache, que é a utilizição de um arquivo [...]]]></description>
			<content:encoded><![CDATA[<p>Como deve ser comum entre desenvolvedores de sistemas web e sites que utilizam o apache como web server e php como sua linguagem de programação, ou outras como Python (utilizando mod_python), Perl (utilizando mod_perl), ou até mesmo Ruby (mod_ruby), fazer uso de um recurso muito poderoso do Apache, que é a utilizição de um arquivo de configuração dentro de sua(s) pasta(s) no projeto, afim de mudar permissões de acesso e o comportamento do projeto. Esse arquivo chama-se .htaccess e hoje vou dar pequenas dicas para quem encontra alguns problemas não muito corriqueiros.</p>
<p>Primeiro Caso: Meu servidor conta com PHP4 e PHP5, eu preciso do PHP5 como default, mas quando dou um php_info(); ele acusa o PHP4!</p>
<p>Primeira Solução (tosca pra caramba): Ao invés de utilizar a extensão .php, utilize .php5.</p>
<p>Segunda Solução (na medida): Crie um arquivo chamado .htaccess na raiz de onde vc deseja executar esses scripts, e insira o seguinte conteudo no arquivo:</p>
<p><code>AddType application/x-httpd-php5 .php<br />
AddHandler application/x-httpd-php5 .php</code><br />
Em alguns casos isso pode vir a não funcionar, então abaixo vou mostrar outras maneiras de forçar o apache a manipular os arquivos .php com o PHP5.<br />
<code>AddType x-mapp-php5 .php<br />
AddHandler x-mapp-php5 .php</code><br />
Esse aqui de cima confesso que demorei um pouco de tempo para descobrir, Hosts como 1and1.co.uk utilizam isso.</p>
<p>Bom pessoal, por hoje foi essa a micro-dica!</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%2Fmicro-dica-apache-htaccess%2F&amp;title=Micro-dica%20Apache%20.HTACCESS" 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%2Fmicro-dica-apache-htaccess%2F&amp;title=Micro-dica%20Apache%20.HTACCESS" 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%2Fmicro-dica-apache-htaccess%2F&amp;title=Micro-dica%20Apache%20.HTACCESS" 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%2Fmicro-dica-apache-htaccess%2F&amp;t=Micro-dica%20Apache%20.HTACCESS" 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%2Fmicro-dica-apache-htaccess%2F&amp;title=Micro-dica%20Apache%20.HTACCESS" 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%2Fmicro-dica-apache-htaccess%2F&amp;title=Micro-dica%20Apache%20.HTACCESS" 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=Micro-dica%20Apache%20.HTACCESS&amp;body=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmicro-dica-apache-htaccess%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%2Fmicro-dica-apache-htaccess%2F&amp;title=Micro-dica%20Apache%20.HTACCESS" 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%2Fmicro-dica-apache-htaccess%2F&amp;title=Micro-dica%20Apache%20.HTACCESS&amp;source=Blog+do+Xorna+Informa%C3%A7%C3%A3o+sem+discri%C3%A7%C3%A3o&amp;summary=Como%20deve%20ser%20comum%20entre%20desenvolvedores%20de%20sistemas%20web%20e%20sites%20que%20utilizam%20o%20apache%20como%20web%20server%20e%20php%20como%20sua%20linguagem%20de%20programa%C3%A7%C3%A3o%2C%20ou%20outras%20como%20Python%20%28utilizando%20mod_python%29%2C%20Perl%20%28utilizando%20mod_perl%29%2C%20ou%20at%C3%A9%20mesmo%20Ruby%20%28mod_ruby" 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%2Fmicro-dica-apache-htaccess%2F&amp;title=Micro-dica%20Apache%20.HTACCESS" 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=Micro-dica%20Apache%20.HTACCESS&amp;url=http%3A%2F%2Fwww.blogdoxorna.com.br%2Fmicro-dica-apache-htaccess%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%2Fmicro-dica-apache-htaccess%2F&amp;story_title=Micro-dica%20Apache%20.HTACCESS" 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%2Fmicro-dica-apache-htaccess%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%2Fmicro-dica-apache-htaccess%2F&amp;name=Micro-dica%20Apache%20.HTACCESS" 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%2Fmicro-dica-apache-htaccess%2F&amp;submitHeadline=Micro-dica%20Apache%20.HTACCESS&amp;submitSummary=Como%20deve%20ser%20comum%20entre%20desenvolvedores%20de%20sistemas%20web%20e%20sites%20que%20utilizam%20o%20apache%20como%20web%20server%20e%20php%20como%20sua%20linguagem%20de%20programa%C3%A7%C3%A3o%2C%20ou%20outras%20como%20Python%20%28utilizando%20mod_python%29%2C%20Perl%20%28utilizando%20mod_perl%29%2C%20ou%20at%C3%A9%20mesmo%20Ruby%20%28mod_ruby&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%2Fmicro-dica-apache-htaccess%2F&amp;=Micro-dica%20Apache%20.HTACCESS" 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/micro-dica-apache-htaccess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
