<?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 Guilherme :: &#187; PHP</title>
	<atom:link href="http://www.guilhermepsa.com/category/desenvolvimento-web/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.guilhermepsa.com</link>
	<description>Tecnologia da Informação, Música, Carro e muito mais...</description>
	<lastBuildDate>Thu, 18 Aug 2011 21:55:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Formatando a saída padrão do Xdebug com o uso da função var_dump</title>
		<link>http://www.guilhermepsa.com/2011/06/28/formatando-a-saida-padrao-do-xdebug-com-o-uso-da-funcao-var_dump/</link>
		<comments>http://www.guilhermepsa.com/2011/06/28/formatando-a-saida-padrao-do-xdebug-com-o-uso-da-funcao-var_dump/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 19:48:32 +0000</pubDate>
		<dc:creator>Guilherme</dc:creator>
				<category><![CDATA[Desenvolvimento Web]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.guilhermepsa.com/?p=31</guid>
		<description><![CDATA[Com o xdebug, é possível formatar a saída, ao utilizar a função var_dump do PHP. Esse é um recurso do Xdebug em conjunto com o PHP, que fornece uma visualização de variáveis do PHP &#8211; seja quais forem: $_SERVER, $_POST, $_GET, $_ENV, $minhavariavel, $meuObjeto&#8230;. &#8211; com uma formatação em HTML. A grande vantagem disso é [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="var_dump" src="http://devzone.zend.com/images/articles/2803/var_dump.jpg" alt="" width="341" height="211" />Com o xdebug, é possível formatar a saída, ao utilizar a função var_dump do PHP. Esse é um recurso do Xdebug em conjunto com o PHP, que fornece uma visualização de variáveis do PHP &#8211; seja quais forem: $_SERVER, $_POST, $_GET, $_ENV, $minhavariavel, $meuObjeto&#8230;. &#8211; com uma formatação em HTML.</p>
<p>A grande vantagem disso é a facilidade de visualização das variáveis, trace exceções, mensagens de NOTICE, WARNING, PARSE ERROR, DEPRECATED, etc.</p>
<p>Muitas pessoas podem ter sofrido a mesma dificuldade que tive, ao habilitar essa funcionalidade. Apesar de as informações do PHP (phpinfo) mostrarem que a biblioteca está carregada, a saída do var_dump não vinha formatada. Após vários testes, seguir várias explicações, entre elas, uma sugeria definir o parâmetro &#8220;<strong>xdebug.trace_format=1</strong>&#8220;. Restartando o servidor web, as variáveis continuavam no formato padrão do PHP.</p>
<p>Inicialmente, eu pensei que o problema seria porque estou trabalhando com o Lighttpd e o PHP configurado para trabalhar em modo CGI (FastCGI). Isso ocorreu pois eu utilizava PHP como módulo do Apache e esse era meu servidor web. Ao migrar pra o Lighttpd, instalei o pacote <strong>php5-cgi</strong> (Debian/Ubuntu) e configurei as diretivas necessárias pra funcionar com aquele.</p>
<p>Felizmente, não há diferença, para essa funcionalidade, utilizar o PHP em modo FastCGI ou módulo do servidor Web. Mesmo se esse mesmo PHP fosse utilizado com o Apache em modo FastCGI, o problema persistiria, ou seja, o problema também não é o Lighttpd.</p>
<p>Quando instalamos o pacote php5-cgi, pelo menos nas distribuições Debian-like, as diretivas de configuração pra trabalhar nesse modo são dispostas em uma pasta separada, geralmente em <strong>&#8220;/etc/php5/cgi&#8221;</strong>. Na verdade, além de habilitar a extensão Xdebug, é necessário mudar uma diretiva do PHP, &#8220;html_errors&#8221;. Pelo menos no <strong>php.ini </strong>da opção CGI, essa estava desabilitada &#8211; html_errors = Off. Quando essa diretiva está <strong>Off/0 (zero) / false</strong>, o Xdebug não formata variáveis, trace de exceções e reporting de erros.</p>
<p>Portanto, se você está com esse problema, além de habilitar a extensão Xdebug (Veja o Post <a href="http://www.guilhermepsa.com/2010/02/18/instalando-o-xdebug-no-debianubuntu/"><em>&#8220;Instalando o Xdebug no Debian/Ubuntu&#8221;</em></a>), é necessário habilitar a opção html_errors.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.guilhermepsa.com/2011/06/28/formatando-a-saida-padrao-do-xdebug-com-o-uso-da-funcao-var_dump/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como utilizar o Zend_Db_Table sem precisar vincular uma entidade de Banco</title>
		<link>http://www.guilhermepsa.com/2010/04/09/como-utilizar-o-zend_db_table-sem-precisar-vincular-uma-entidade-de-banco/</link>
		<comments>http://www.guilhermepsa.com/2010/04/09/como-utilizar-o-zend_db_table-sem-precisar-vincular-uma-entidade-de-banco/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 12:53:28 +0000</pubDate>
		<dc:creator>Guilherme</dc:creator>
				<category><![CDATA[Desenvolvimento Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.guilhermepsa.com/?p=24</guid>
		<description><![CDATA[Quem usa o ZendFramework, provavelmente já passou muita raiva pois ele gera aquela mensagem &#8220;simpática&#8221;: &#8220;A table must have a primary key, but none was found&#8221;. Isso se deve ao fato de a classe Zend_Db_Table / Zend_Db_Table_Abstract tentar fazer os mapeamentos de nome da entidade, colunas e chave primária &#8211; em suma, efetuar um describe [...]]]></description>
			<content:encoded><![CDATA[<p>Quem usa o ZendFramework, provavelmente já passou muita raiva pois ele gera aquela mensagem &#8220;simpática&#8221;: <em>&#8220;A table must have a primary key, but none was found&#8221;.</em> Isso se deve ao fato de a classe Zend_Db_Table / Zend_Db_Table_Abstract tentar fazer os mapeamentos de nome da entidade, colunas e chave primária &#8211; em suma, efetuar um describe da entidade informada.</p>
<p>Mas há momentos em que o modelo não representa uma entidade do banco. Por exemplo, pode-se usar o modelo para executar uma função, uma procedure ou uma consulta à uma &#8220;View&#8221; de banco. Trabalhando nessa estrutura, onde o modelo representa os dados persistidos no banco, esse paradigma é quebrado.</p>
<p>O Zend Framework é bastante flexível em vários quesitos; um deles é o quesito mapeamento de dados, é possível sobrescrever algums métodos da classe herdada (Zend_Db_Table / Zend_Db_Table_Abstract). Um desses é o método <em>&#8220;_setupPrimaryKey&#8221;</em>, responsável por instanciar a chave primária da tabela; metódo, também, responsável por gerar a exceção quando, no mapeamento, não é encontrada a chave primária à partir das colunas buscadas à partir de um describe da tabela. Todo esse processo é executado automaticamente pelo Zend_Db.</p>
<p>Para resolver esse problema, é necessário forçar o mapeamento manual de algumas variáveis utilizadas pela classe &#8220;pai&#8221;. Nessa situação, foi suficiente forçar a variável &#8220;$this-&gt;_cols&#8221; para um vetor vazio. Adicionalmente, foi informado como vazio o nome da tabela, porém a classe pai define como sendo o nome da Classe filha o valor dessa variável ($this-&gt;_name).</p>
<p>Portanto, para trabalhar nessa estrutura, onde o modelo não representa uma entidade no banco basta sobrescrever o método <em>&#8220;_setupPrimaryKey&#8221;</em>:</p>
<blockquote><p>public function _setupPrimaryKey() {<br />
$this-&gt;_cols = array();<br />
$this-&gt;_name = &#8220;&#8221;;<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.guilhermepsa.com/2010/04/09/como-utilizar-o-zend_db_table-sem-precisar-vincular-uma-entidade-de-banco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando o Xdebug no Debian/Ubuntu</title>
		<link>http://www.guilhermepsa.com/2010/02/18/instalando-o-xdebug-no-debianubuntu/</link>
		<comments>http://www.guilhermepsa.com/2010/02/18/instalando-o-xdebug-no-debianubuntu/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 19:35:21 +0000</pubDate>
		<dc:creator>Guilherme</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[zend.xdebug]]></category>

		<guid isPermaLink="false">http://www.guilhermepsa.com/?p=13</guid>
		<description><![CDATA[Olá pessoal. Pra quem já teve a mesma dificuldade que eu, pra instalar o componente xdebug no PHP, vai ai uma ajuda e tanto. Como utilizo o repositório do Ubuntu pra instalar meus serviços e programas, passei por uma dificuldade com a instalação do componente xdebug. Eu utilizo o ZendServer Community Edition &#8211; um Apache [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal.</p>
<p>Pra quem já teve a mesma dificuldade que eu, pra instalar o componente xdebug no PHP, vai ai uma ajuda e tanto. Como utilizo o repositório do Ubuntu pra instalar meus serviços e programas, passei por uma dificuldade com a instalação do componente xdebug.</p>
<p>Eu utilizo o ZendServer Community Edition &#8211; um Apache + PHP + Componentes básicos do ZendServer todos num pacote -, e nessa situação, executei o comando padrão: <em>&#8220;aptitude install </em>php-5.3-xdebug-zend-server<em>&#8220;</em>.</p>
<p>Ao restartar o Apache, a surpresa, o serviço não estava no ar e ao analisar os logs a mensagem, que &#8220;diz tudo&#8221; e não diz nada:</p>
<p><strong>[notice] caught SIGTERM, shutting down</strong></p>
<p>Pesquisando nas listas do xdebug, encontrei algo que poderia resolver meu problema. Mas antes, tentei mais uma opção, compilar a extensão com o phpize. Fiz o download da última versão do xdebug, e executei os seguintes comandos:</p>
<p># sudo su<br />
# wget http://xdebug.org/files/xdebug-2.1.0beta2.tgz<br />
# /usr/local/zend/bin/phpize<br />
# ./configure &#8211;enable-xdebug &#8211;with-php-config=/usr/local/zend/bin/php-config<br />
# make<br />
# cp modules/xdebug.so /usr/local/zend/lib/php_extensions/</p>
<p>Como já havia instalado o xdebug do repositório, ele criou em <em><strong>/usr/local/zend/etc/conf.d</strong> </em>um link simbólico &#8220;xdebug.ini&#8221; para o arquivo <em><strong>&#8220;/usr/local/zend/etc/ext.d/xdebug.ini&#8221;</strong></em>.</p>
<p>Bom, o detalhe maior está nesse arquivo, portanto não precisávamos dessa etapa de compilação. A extensão instalada do repositório cria a seguinte diretiva:</p>
<p><strong>zend_extension=/usr/local/zend/lib/php_extensions/xdebug.so</strong></p>
<p>Dessa forma, a extensão não é carregada e para matar a charada, basta mudar de <strong><em>&#8220;zend_extension&#8221;</em> </strong>para<strong> <em>&#8220;extension&#8221;</em></strong>, portanto:</p>
<p><strong>extension=/usr/local/zend/lib/php_extensions/xdebug.so</strong></p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 379px; width: 1px; height: 1px;">extension=/usr/local/zend/lib/php_extensions/xdebug.so</div>
]]></content:encoded>
			<wfw:commentRss>http://www.guilhermepsa.com/2010/02/18/instalando-o-xdebug-no-debianubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Facebook reescreve PHP do zero e pode estar desenvolvendo um compilador para a linguagem</title>
		<link>http://www.guilhermepsa.com/2010/02/02/facebook-reescreve-php-do-zero-e-pode-estar-desenvolvendo-um-compilador-para-a-linguagem/</link>
		<comments>http://www.guilhermepsa.com/2010/02/02/facebook-reescreve-php-do-zero-e-pode-estar-desenvolvendo-um-compilador-para-a-linguagem/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 14:29:00 +0000</pubDate>
		<dc:creator>Guilherme</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.guilhermepsa.com/?p=8</guid>
		<description><![CDATA[Em parceria com a equipe central do PHP, o Facebook deve anunciar nesta terça-feira (02/02/2010) o aplicativo que desenvolveram, que deverá ser disponibilizado como código aberto.]]></description>
			<content:encoded><![CDATA[<p>Parece realidade mesmo, o Facebook, em parceria com a equipe do core do PHP, reescreveu o código do PHP. A idéia, pelo que tenho lido a respeito, é melhorar o desempenho do nosso amável PHP.</p>
<p>O trabalho de melhoria do PHP, deveria ficar a cargo da própria Zend em parceria com a comunidade, mas parece que eles estão sem tempo e mais interessados no mercado corporativo, com suas ferramentas de desenvolvimento, proteção de código e servidor, do que com o crescimento e melhoria da linguagem.</p>
<p>Mais detalhes estão disponíveis em: <a href="http://www.geek.com.br/posts/12221-facebook-reescreve-php-do-zero-e-pode-estar-desenvolvendo-um-compilador-para-a-linguagem" target="_blank">http://www.geek.com.br/posts/12221-facebook-reescreve-php-do-zero-e-pode-estar-desenvolvendo-um-compilador-para-a-linguagem</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.guilhermepsa.com/2010/02/02/facebook-reescreve-php-do-zero-e-pode-estar-desenvolvendo-um-compilador-para-a-linguagem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

