Improved Cake Shell: feedbacks coloridos no console
Eu e o Lucas tinhamos um trabalho bem divertido: criar um shell do cake. Ate aí, nada de muito complicado, pois a tarefa que seria executada era bem simples. De fato, realizamos o trabalho rapidamente. Comecei a pensar e vi que o log que seria gerado, poderia ser estupidamente grande, e tinhamos um feedback ‘preto-e-branco’ e pouco intuitivo…
Sempre fui o “cara da interface gráfica, das coisas gays e bonitinhas” como diria o Rafael (o homem modo-texto), e não seria numa hora dessas que deixaria isso de lado. xD
Comecei a conversar com o João, comentando esse fato, esperando que ele tivesse uma ideia (mesmo que copiada de alguém =D). Para minha surpresa, ali estava: cake-db-migrations.
Tá bom… mas e daí? Muito interessante o que joelmoss tinha feito… Mas para formatar uma string grande, além de ser obrigado a criar um estilo, ainda tinha que ficar concatenando varias strings com e sem formatação.
$this->out('Teste de formatacao simples '.$this->_colorize('funcionando',NOME_DO_ESTILO).'!');
Mas poderia ser mais fácil… algo como TAGS seria ótimo! Bom, depois de algum tempo de meditação e trabalho, agora elas funcionam… e de forma bem simples!
$this->formattedOut('Teste de formatacao simples [fg=green]funcionando[/fg]!');
E a saída no shell:
Bom, vamos ao que realmente interessa.
COMO USAR?
Primeiro: entre a pasta ‘plugins’ da app e
git clone git://github.com/lucius/improved_cake_shell.git
Depois, na hora de criar o seu shell em APP/vendors/shells/, apenas importe o plugin e extenda sua classe da ImprovedCakeShell (ao invés do Shell normal). O resto funciona da mesma maneira:
<?php App::import('Vendor', 'ImprovedCakeShell.ImprovedCakeShell'); class TestShell extends ImprovedCakeShell { function main() { $this->addStyle( array( 'TEST' => array( 'bg' => 'green', 'fg' => 'black', 's' => true ) )); $this->formattedOut('[b]Teste[/b] de formatacao [TEST]funcionando[/TEST]!'); } } ?>
Vamos com calma! Posso criar estilos completos sem ter que ficar abrindo e fechando milhões de tags?
SIM! Basta apenas utilizar o método addStyle, como feito ali em cima.
E como prometido:

Para obter informações mais detalhadas a respeito do uso é só consultar o README, que segue junto com o plugin.
Pronto! Agora seus logs de console trazem feedback de maneira mais eficiente, visualizável e BONITA!
Tags: cakephp, console colorido, console log, feedback, shell




