Esses dias que eu estava me atualizando na internet, me deparei com um artigo falando sobre o FirePHP, que ate aquele momento me era desconhecido.Para todos os desenvolvedores que trabalham com Javascript em especialmente Ajax, o Firebug do Firefox e uma ferramenta "ferrada" para o debug e dump das informacoes que foram criadas via Javascript.E que tal termos algo parecido so que para o PHP? Seria legal, nao e verdade? E exatamente isso que o FirePHP faz.Eu nao falarei exatamente sobre o FirePHP, mas falarei sim sobre como utilizalo no Zend Framework por meio das classes ja existentes no nosso maravilhoso framework que e uma mao na roda!Quem quiser saber mais sobre o FirePHP, aconselho ler o mesmo artigo que li no imasters:http://imasters.uol.com.br/artigo/13959/php/_como_debugar_aplicacoes_ajaxphp_com_firephp/E tambem indico o manual do Zend que fala sobre o FirePHP:http://framework.zend.com/manual/en/zend.log.writers.html#zend.log.writers.firebugE por isso que gosto do Zend, pela sua vasta documentacao :)CRIANDO AS INSTANCIAS NECESSARIASO FirePHP funciona como um log. Do mesmo jeito que criamos log por meio da classe Zend_Log. E o Zend_Log quem delega o log atual registrado para os "log writers" e o Zend_Log_Writer_FireBug e um componente writer que envia o log para o FirePHP.Em seu bootstrap, antes de voce dar um dispatcher em seu controller, insira as linhas abaixo:$logger = new Zend_Log();$writer = new Zend_Log_Writer_Firebug();//DIZ AO LOG QUEM E O WRITER, OU SEJA, QUEM IRA GRAVAR OS LOGS$logger->addWriter($writer);Para utilizar seu log em todo o seu projeto, voce pode manter uma instancia do seu Logger para toda a aplicacao e usar em suas views, controllers e models:Zend_Registry::set('logger',$logger);Utilizando o Logger:$logger = Zend_Registry::get('logger');$logger->log('Mensagem de log para o FirePHP!', Zend_Log::INFO);Repare na constante INFO da classe Zend_Log.Toda vez que chamarmos um Log, no FireBug do firefox sera mostrada um icone de informacao com a mensagem do primeiro parametro.Voce tambem pode utilizar as constantes WARN ou ALERT como referencia de log ou prioridade das mensagens.Um exemplo disso, e utilizarmos esse log em blocos Try catch.Exemplo:try {// Caso tenha ocorrido algum erro} catch(Exception $e) {Zend_Registry::get('logger')->err($e)}ou tambem de outra forma:try {// Caso tenha ocorrido algum erro} catch(Exception $e) {$logger->log('Erro em bloco try catch ao tentar inserir dados na Base: '.$e, Zend_Log::ALERT);}DUMP DE INFORMACOES PROCESSADAS NA BASE DE DADOSSeria legal nos termos um dump de todas as operacoes que sao feitas em nossa base de dados, nao acha?Mas seria um saco, cansativo e de grande manutenabilidade termos que chamar nosso log toda hora.Mas..olha so como o Zend e camarada...rsNo seu bootstrap mesmo, insira as seguintes linhas de codigo depois de ter setado o seu Adapter e antes do dispatcher do seu controller:$profiler = new Zend_Db_Profiler_Firebug('All DB Queries');$profiler->setEnabled(true);//$db SERIA O SEU ADAPTER CONFIGURADO PARA ACESSAR A BASE DE DADOS.$db->setProfiler($profiler);Com esse codigo, toda vez que for enviada uma instrucao SQL para nossa base, o FirePHP nos mostrara os dados enviados para o servidor, parecido com a imagem abaixo:DICASEm meu firebug, eu tive que habilitar a opcao Rede (Ultima aba da janela do FireBug).Nao esqueca de habilitar o seu FirePHP.Insira seu site na lista de (allowed Sites) do FirePHPSeria chato se os usuarios que acessam o site visualizassem todos os dumps que usamos para nos basear em